Whisk yogurt, lemon juice, garlic, ginger, 1 tbsp garam masala, 1 tsp cumin, turmeric, chili powder, and 1 tsp salt.
Coat chicken in the marinade. Let it rest 15 minutes while you start the sauce.
Heat oil and 2 tbsp butter in a large skillet over medium-high heat.
Sear chicken in batches until lightly browned, 3–4 minutes. Transfer to a plate.
Add onion to the pan. Cook until soft and golden, about 5 minutes.
Stir in tomato paste, remaining garam masala, and remaining cumin. Toast 1 minute.
Pour in tomato puree and water. Add remaining 1 tsp salt and the sugar. Simmer 5 minutes.
Return chicken and juices to the pan. Simmer gently until cooked through, 8–10 minutes.
Lower heat. Stir in cream, remaining 2 tbsp butter, and crushed fenugreek. Simmer 2 minutes.
Taste and adjust seasoning. Sprinkle cilantro and let rest 2 minutes before serving.