In a bowl, combine yogurt, lemon juice, ginger garlic paste, garam masala, chili powder, and salt.
Add the chicken pieces and stir until evenly coated. Cover and marinate for at least 30 minutes, or up to overnight in the refrigerator.
Cook the chicken:
Heat 1 tablespoon butter and the oil in a large skillet over medium-high heat.
Add the marinated chicken in a single layer and cook for 5 to 7 minutes, turning once, until browned on the outside. Transfer to a plate. It does not need to be fully cooked yet.
Make the sauce:
Lower the heat to medium. Add the remaining tablespoon of butter, then cook the onion for 5 to 6 minutes until soft and lightly golden.
Stir in garlic and ginger and cook for 1 minute. Add tomato puree, cumin, coriander, garam masala, turmeric, and a pinch of salt.
Simmer for 10 to 12 minutes, stirring occasionally, until the sauce thickens and the tomato flavor softens.
For a smoother restaurant-style sauce, blend the sauce carefully, then return it to the skillet.
Finish and serve:
Return the chicken and any juices to the skillet. Simmer for 8 to 10 minutes, until the chicken is cooked through.
Stir in the cream and crushed dried fenugreek leaves. Taste and adjust salt or chili as needed.
Garnish with cilantro and a small swirl of cream. Serve hot with naan, roti, or basmati rice.
Notes
Chicken thighs stay juicier than chicken breast, but either works. If using chicken breast, avoid overcooking after it returns to the sauce.Kashmiri chili powder is mild and colorful. Substitute paprika with a small pinch of cayenne for a similar effect.