In a bowl, mix the flour, cumin powder, coriander powder, garam masala, salt, and pepper.
Coat the chicken pieces in the flour mixture, shaking off any excess.
Heat 2 tablespoons of butter in a skillet over medium heat. Add the coated chicken pieces and cook until golden and crispy, about 5-6 minutes per side. Remove from the skillet and set aside.
In the same skillet, add the remaining 2 tablespoons of butter. Add the chopped onion, garlic, and ginger. Cook until the onion is soft and translucent.
Stir in the tomato puree and cook for another 2-3 minutes.
Return the cooked chicken pieces to the skillet and stir to coat them with the sauce.
Pour in the heavy cream, stirring continuously until the sauce is smooth and creamy.
Simmer the chicken in the sauce for a few more minutes until heated through and well-coated.
Garnish with fresh cilantro before serving.