Mince the aromatics: cilantro stems, ginger, and garlic.
Mix the yogurt with the spices, salt, and aromatics together in a large bowl.
Add the chicken pieces and stir gently to fully coat the chicken.
Cover and place in the refrigerator for 30 minutes to 1 hour.
Prepare the sauce
Heat the butter over medium heat in a heavy-bottomed saucepan or Dutch oven.
Add the onion to the butter and cook, stirring frequently, until the onion begins to brown, about 10 minutes.
Add the garam masala, tomato paste, ginger, serrano, and garlic and cook, stirring, until very fragrant, about 45—60 seconds.
Add the crushed tomatoes and stir everything to combine. Be sure to scrape up any nice brown bits from the bottom of the pan.
Reduce the heat to a low simmer and cover the pot. Simmer for about 15 minutes, stirring from time to time. If you’re not doing a tandoor-style cook, preheat your grill or oven to 425°F (218°C). (Now is a good time to prepare the rice.)
Once the sauce has simmered, add the cream and stir to combine. Return to a simmer, kill the heat and cover the pot until the chicken is done cooking.
If you’re using a kamado-style cooker as a tandoor, preheat it at least a half-hour before preparing the food. Set up Billows® BBQ Control Fan connected to your ThermaQ 2 with the Hi-Temp Flexible Ceramic Fiber-Insulated Probe as the air probe. Set the Billows target temp to 700°F (371°C) and let the grill heat.