In a bowl, mix the chicken pieces with yogurt, ginger-garlic paste, lemon juice, and a pinch of salt. Cover and refrigerate for at least 30 minutes to allow the flavors to meld.
In a large pan, melt the butter over medium heat. Add the chopped onion and sauté until golden brown, about 5-7 minutes.
Add the marinated chicken to the pan and cook for about 8-10 minutes, stirring occasionally, until the chicken is browned and cooked through.
Stir in the pureed tomatoes and tomato paste. Cook for another 5 minutes until the mixture thickens and the oil begins to separate.
Add garam masala, ground cumin, ground coriander, paprika, and salt. Mix well to coat the chicken in spices.
Pour in the heavy cream and stir until well combined. Simmer on low heat for another 10 minutes, allowing the flavors to blend and the sauce to thicken.
Remove from heat and garnish with fresh cilantro. Serve hot with rice or naan.
Notes
Marinating the chicken enhances the flavor.
Keyword butter chicken, chicken, creamy, Indian cuisine