Marinate the chicken:
Prepare the marinade:
In a mixing bowl, combine yogurt, lemon juice, garlic, ginger, and spices (cumin, coriander, turmeric, paprika, garam masala, and salt).
Add the chicken:
Toss the chicken pieces in the marinade until well coated. Cover and refrigerate for at least 1 hour, or overnight for best results.
Cook the chicken:
Sear the chicken:
Heat a skillet or wok over medium-high heat and add 1 tbsp vegetable oil. Cook the marinated chicken in batches until browned on all sides (about 4–5 minutes per side). Set aside. The chicken doesn’t need to be fully cooked at this stage.
Make the butter chicken sauce:
Sauté the aromatics:
In the same skillet, add 2 tbsp butter. Sauté the chopped onion until soft and golden, about 5 minutes. Add the garlic, ginger, and spices (cumin, coriander, paprika, and chili powder) and cook for another minute until fragrant.
Add the tomatoes:
Stir in the crushed tomatoes and tomato paste. Simmer for 10 minutes, stirring occasionally, until the sauce thickens and deepens in color.
Blend the sauce (optional):
For a smoother sauce, use an immersion blender or transfer the mixture to a blender and process until smooth.
Finish the sauce:
Return the sauce to the skillet, stir in the heavy cream, and add garam masala and sugar (if needed). Season with salt to taste.
Simmer the chicken:
Add the seared chicken to the sauce. Reduce heat to low and simmer for 15–20 minutes, or until the chicken is fully cooked and tender.
Serve:
Garnish with chopped cilantro and serve hot with naan, basmati rice, or roti.