Step 1: Marinate the Chicken
In a large bowl, combine yogurt, lemon juice, ginger garlic paste, turmeric, cumin, coriander, paprika, cinnamon, chili powder, and salt.
Add the chicken pieces and mix to coat evenly.
Cover the bowl and marinate in the fridge for at least 30 minutes (or overnight for more flavor).
Step 2: Cook the Chicken
Heat a large skillet or Dutch oven over medium-high heat.
Add 1 tablespoon of butter and once melted, add the marinated chicken pieces.
Cook the chicken until browned on all sides (about 7-10 minutes), then remove from the skillet and set aside.
Step 3: Make the Sauce
In the same skillet, melt the remaining 2 tablespoons of butter over medium heat.
Add the chopped onion and sauté for 3-4 minutes until softened.
Stir in the garlic and ginger garlic paste and cook for another 1-2 minutes.
Add the crushed tomatoes, cumin, coriander, garam masala, turmeric, and chili powder. Stir well and simmer for 10 minutes to allow the flavors to develop.
Step 4: Combine Chicken And Finish the Sauce
Return the cooked chicken to the skillet with the sauce.
Add the heavy cream, and stir to combine. Simmer for an additional 5-7 minutes until the chicken is fully cooked through and the sauce thickens.
Adjust salt to taste.
Step 5: Serve And Garnish
Serve the butter chicken with basmati rice or naan. Garnish with freshly chopped cilantro.