Prepare the Chicken: In a spacious bowl, combine thick yogurt, minced garlic, grated ginger, ground garam masala, turmeric, cumin, chili powder, and a pinch of salt, stirring well to create a flavorful marinade. Add the chicken pieces, ensuring they're well coated. Let the chicken marinate for at least 10 minutes while you prepare the sauce (longer for more flavor, up to overnight).
Cook the Chicken: Heat oil in a large skillet over medium-high heat. Sear the marinated chicken pieces until lightly browned but not fully cooked (about 5 minutes). Remove the chicken and set aside.
Build the Sauce Base: In the same skillet, add ghee (or butter) and sauté the minced garlic and ginger until fragrant (1–2 minutes).
Add the Spices and Tomato Base: Stir in cumin, chili powder, cayenne pepper, and tomato sauce. Simmer for about 5 minutes, letting the ingredients blend together and the sauce gently reduce to a richer consistency.
Incorporate the Cream: Lower the heat and slowly stir in the heavy cream or coconut milk. Simmer for 2–3 minutes until the sauce is smooth and creamy.
Simmer the Chicken: Return the chicken to the skillet, along with any juices. Stir to coat in the sauce. Simmer on low heat for 8–10 minutes, or until the chicken is fully cooked and tender.
Add Final Touches: Stir in dried fenugreek (if using) and adjust salt to taste.
Garnish and Plate: Serve the butter chicken over steamed rice or with warm naan bread.