In a large bowl, combine the yogurt, minced garlic, ginger, garam masala, turmeric, cumin, chili powder, and sea salt. Mix well.
Add the chicken pieces, making sure they are well coated in the marinade. Cover and refrigerate for at least 30 minutes, or up to 24 hours for extra flavor.
Heat 2 tablespoons of oil in a large skillet or Dutch oven over medium-high heat. Add marinated chicken pieces in batches and sear until browned on all sides. Remove the chicken and set aside.
In the same skillet, lower the heat to medium and add 2 tablespoons of ghee. Sauté minced garlic and ginger until they smell great, about 1 minute.
Add the ground coriander, cumin, chili powder, and cayenne pepper (if using). Stir for about 30 seconds to toast the spices.
Pour in the tomato sauce and sprinkle in a teaspoon of sea salt. Stir well and scrape up the tasty bits from the bottom of the pan. Let it simmer on low for about 5 minutes.
Slowly stir in the heavy cream (or coconut milk) until completely blended. If you’re using fenugreek leaves, add those now and mix well.
Return the cooked chicken along with any juices to the skillet. Let it simmer on low heat for 8–10 minutes until the chicken is cooked through and the sauce thickens to your liking.
Optionally, garnish with freshly chopped cilantro. Serve hot over cooked basmati rice or next to warm naan bread.