In a large skillet, melt the butter and oil over medium heat. Add the chopped onion and sauté until translucent, about 5 minutes.
Stir in the minced garlic and ginger, cooking for an additional 1-2 minutes until fragrant.
Add the chicken pieces to the skillet, followed by the cumin, coriander, garam masala, paprika, turmeric, salt, and black pepper. Cook until the chicken is browned on all sides, about 5-7 minutes.
Pour in the tomato puree and stir to combine. Bring the mixture to a simmer and cook for 5 minutes.
Reduce the heat to low and stir in the heavy cream and lemon juice. Simmer for another 5 minutes until the sauce thickens slightly.
Taste and adjust seasoning if necessary. Garnish with chopped cilantro before serving.
Serve hot with cooked basmati rice or naan.