Begin by cutting the chicken breast into bite-sized pieces and place them in a large mixing bowl.
In the same bowl, add the yogurt, lemon juice, cumin, coriander, turmeric, garam masala, chili powder, salt, minced garlic, and grated ginger. Mix well until the chicken is evenly coated. Cover and refrigerate for at least 30 minutes, preferably longer (up to overnight).
Once marinated, preheat your grill or oven to 400°F (200°C). If using skewers, thread the marinated chicken onto them.
Grill the chicken for about 15-20 minutes, turning occasionally until fully cooked. If using an oven, spread the chicken on a baking sheet and bake for about 20 minutes, or until cooked through with a slight char.
While the chicken is cooking, heat the vegetable oil or ghee in a large skillet over medium heat. Add the chopped onions and sauté until they are translucent and fragrant (about 5-7 minutes).
Add the minced garlic and grated ginger to the skillet and cook for another 1-2 minutes.
Pour in the crushed tomatoes and let the mixture simmer for about 10 minutes.
Stir in the heavy cream, garam masala, and sugar. Let the sauce simmer for an additional 5 minutes until slightly thickened.
Add the grilled chicken to the sauce and mix until well combined. Cook for another 5 minutes to let the flavors meld.
Taste and adjust salt if necessary. Garnish with fresh cilantro before serving.