In a large bowl, combine 1/2 cup plain yogurt, 1 tbsp minced garlic, 2 tsp minced ginger, 2 tsp garam masala, 1 tsp turmeric, 1 tsp cumin, 1 tsp chili powder, and 1 tsp salt to make a marinade paste.
Add the 1 1/2 lbs cut chicken thighs to the marinade and stir until evenly coated. Cover and refrigerate for at least 1 hour or up to 24 hours.
Preheat the oven to 500°F (260°C). Line a 9x13-inch baking pan with foil and prepare skewers (soak wooden skewers in water if using).
Thread the marinated chicken pieces onto skewers and arrange them so they are elevated above the pan. Bake for about 15 minutes, until chicken is cooked through and lightly browned.
While the chicken bakes, heat 2 tbsp olive oil and 1 tbsp butter in a large skillet over medium-high heat.
Sauté 1 large finely diced onion for 3–5 minutes until translucent, then add 2 tbsp minced garlic and 1 tbsp minced ginger.
Add 2 tsp garam masala, 2 tsp cumin, 1 tsp turmeric, 1 tsp ground coriander, 1 tsp paprika, 1 tsp salt, and 1/4 tsp cayenne pepper. Cook for 30–45 seconds until fragrant.
Pour in 14 oz tomato puree and 3/4 cup water, bring the sauce to a simmer and cook for about 3 minutes.
Stir in 1 cup heavy cream until the sauce is smooth, then add the cooked chicken (remove from skewers if used) and simmer briefly to heat through and meld flavors.
Garnish with 2 tbsp freshly chopped cilantro and serve with rice or naan.