Combine the yogurt and spices to create a paste in a large bowl. Add in the cut chicken thighs and stir to coat. Cover and refrigerate for at least 1 hour, up to 24 hours.
Preheat oven to 500 degrees F. Line a 9x13" baking pan with foil and soak wooden skewers in water (if using) or use metal skewers.
Thread the marinated chicken pieces onto the skewers until they're filled, then prop each end of the skewer on the baking pan, so the chicken is elevated and does not touch the bottom. Bake in oven for 15 minutes, or until chicken is cooked through and browned.
For The Sauce:
While the chicken is cooking, prepare the sauce. Start by adding olive oil and butter to a large pan over medium-high heat. Sauté onion for about 3 to 5 minutes, until tender and translucent.
Add in garlic and ginger, along with the garam masala, cumin, turmeric, ground coriander, paprika, salt and cayenne pepper. Cook about 3o to 45 seconds, until fragrant.
Pour in the tomato puree and water and bring to a simmer for 3 minutes. Add in the heavy cream and stir until evenly combined, then add in the cooked chicken.
Serve with rice, naan bread and a sprinkle of freshly chopped cilantro. Enjoy!
If desired, you can cook the chicken on a hot grill instead of the oven. *Store leftovers in the fridge for up to 3 days.