Prepare the chicken. Combine all ingredients for the spice mixture and set aside. In a large bowl, mix together the plain yogurt, lemon juice, grated garlic, grated ginger, and half of the spice mixture until evenly combined. Set aside.
Toss the cubed chicken thighs with the other half of the spice mixture. Add the chicken to the yogurt mixture and stir until fully coated. Cover and marinate in the fridge for at least 1 hour (ideally overnight).
Set an oven rack to the top position and preheat the broiler. Line a baking sheet with aluminum foil and place a wire rack on top. Spray the rack with nonstick cooking spray.
Take the chicken from the fridge and arrange the pieces onto a wooden skewer. Line the skewers on top of the wire rack and spoon over any remaining marinade. Place the sheet under the broiler for 12 minutes, flipping the skewers halfway through, until the chicken is golden brown on top and just cooked through.
As the chicken cooks, begin the sauce. Place the butter/ghee in a large pot or Dutch oven over medium heat. Add the chopped onions and cook, stirring frequently, until soft and translucent (around 5-7 minutes).
Add the grated garlic, ginger, and tomato paste. Stir for 2 minutes, until the tomato paste has cooked out into a deeper color, then add the spices. Lower the heat and bloom the spices for 2 minutes more, until toasted and fragrant.
Pour in the crushed tomatoes and water (if the sauce is too thick), then stir in the heavy cream. Bring the sauce to a simmer and season to taste with salt, pepper, and sugar (if too acidic).
Carefully remove the broiled chicken from the skewers and stir into the sauce. Simmer until the chicken is warmed through and fully cooked (around 3 minutes).
Sprinkle cilantro over the chicken and serve warm with basmati rice and naan.