Marinate the chicken with yogurt, lemon juice, garam masala, turmeric, cumin, and coriander for at least 1 hour.
Heat butter in a large skillet and sauté onions until golden.
Add garlic and ginger, cook until fragrant.
Stir in marinated chicken and cook until browned on all sides.
Add tomato puree and simmer for 15 minutes.
Pour in heavy cream, reduce heat, and let the sauce thicken.
Season with salt and pepper.
Serve hot with fresh naan and garnish with cilantro.