In a large bowl combine the 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.
Add the 1 1/2 lb chicken thighs (cut into bite-size pieces) to the marinade and stir to coat. Cover and refrigerate for at least 1 hour and up to 24 hours.
Preheat the oven to 500°F and line a 9x13-inch baking pan with foil. If using wooden skewers, soak them in water; otherwise use metal skewers.
Thread the marinated chicken pieces onto skewers, resting each skewer on the edges of the prepared pan so the chicken is elevated. Bake for 15 minutes, or until cooked through and slightly browned.
While the chicken cooks, heat 2 tbsp olive oil and 1 tbsp butter in a large skillet over medium-high heat. Add the finely diced large onion and sauté 3–5 minutes until translucent.
Add 2 tbsp minced garlic, 1 tbsp minced ginger, 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 to the skillet and cook 30–45 seconds until fragrant.
Pour in the 14 oz tomato puree and 3/4 cup water, bring the sauce to a simmer, and cook about 3 minutes.
Stir in 1 cup heavy cream until combined, then add the cooked chicken (remove from skewers if used) to the sauce and heat through for a few minutes.
Garnish with 2 tbsp freshly chopped cilantro and serve with rice or naan.