In a large bowl, mix yogurt, lemon juice, turmeric, garam masala, cumin, ginger garlic paste, and salt. Add the chicken, coat well with the marinade, and let it rest for at least 1 hour, preferably overnight in the refrigerator.
Melt butter in a large pan over medium heat. Add onions and sauté until they turn translucent.
Add the marinated chicken to the pan and cook until all sides are browned.
Pour in the tomato puree and let it simmer for 10 minutes. Add chili powder and honey, adjust the seasoning as needed.
Stir in the heavy cream and simmer for another 10-15 minutes, until the chicken is cooked through and the sauce has thickened.
Garnish with chopped cilantro before serving.