1. In a mixing bowl, combine yogurt, lemon juice, garam masala, ground cumin, ground coriander, and paprika. Add chicken pieces and marinate for at least 1 hour.
2. In a skillet, melt butter over medium heat. Add onions and cook until golden brown. Add garlic and ginger, cook for another 2 minutes.
3. Stir in turmeric, ground cumin, ground coriander, paprika, and garam masala. Cook for 1 minute.
4. Add tomato puree and cook for 10 minutes, stirring occasionally.
5. Add marinated chicken and cook until chicken is done, about 15-20 minutes.
6. Stir in heavy cream and sugar. Season with salt and pepper to taste. Simmer for another 5 minutes.
7. Garnish with fresh cilantro and serve hot with rice or naan.