In a bowl, combine the chicken pieces, yogurt, lemon juice, salt, turmeric, cumin, garam masala, ginger paste, and garlic paste. Mix well and marinate for at least 20 minutes, or up to 4 hours in the refrigerator.
Heat the oil or ghee in a large pot or Dutch oven over medium-high heat. Add the marinated chicken and cook until lightly browned on all sides, about 5-7 minutes. Remove the chicken and set it aside.
Reduce the heat to medium. Add the chopped onion to the pot and cook until soft and translucent, about 5 minutes.
Add the ginger paste and garlic paste to the onions and cook for 1 minute until fragrant.
Stir in the crushed tomatoes, chili powder, coriander, and sugar. Cook, stirring occasionally, for 5 minutes until the sauce thickens slightly.
Add the water and bring the sauce to a gentle simmer. Return the cooked chicken to the pot. Cover and cook for 10 minutes, allowing the chicken to finish cooking and absorb the flavors.
Stir in the heavy cream and crushed fenugreek leaves. Cook for another 2 minutes until the sauce is heated through. Do not boil after adding the cream.
Stir in the butter until it melts completely, creating a rich texture.
Taste and adjust salt or chili powder if needed. Garnish with fresh cilantro before serving.
Notes
For a smoother sauce, blend the sauce mixture (before adding the cream) using an immersion blender or carefully transfer it to a regular blender.
Use ghee instead of oil for a more traditional flavor profile.
Serve this dish hot with basmati rice or naan bread.