This recipe is really good, although it takes a while. It is from America’s Test Kitchen. Serve with rice.
Chicken: Combine 1/2 teaspoon salt, cumin, coriander, and
cayenne in a small bowl. Pat chicken dry with paper
towels and sprinkle with the sauce mixture, pressing gently so the mixture adheres. Place the chicken on a plate, cover
with plastic wrap, and refrigerate 30-60 minutes. (cont.) In a large bowl, whisk the yogurt, oil, ginger, and garlic together and set aside.
Sauce: Heat the oil in a large Dutch oven over medium heat until shimmering. Add the onion and cook, stirring frequently, until softened and light golden, 8-10 minutes. Stir in the garam masala, tomato paste, garlic, ginger, and serrano and cook, stirring frequently, until fragrant, about 3 minutes. Add the crushed tomatoes, sugar, and salt and bring to a boil. Reduce the heat to medium-low, cover, and simmer for 15 minutes, stirring occasionally. Stir in the cream and return to a simmer. Remove the pan from the heat and cover to keep warm. (The sauce can be refrigerated in an airtight container for up to 4 days, and gently reheated before adding the hot chicken.)
To cook the chicken: While the sauce simmers, position an oven rack 6 inches from the heating element and heat the broiler. Line a rimmed baking sheet or broiler pan with foil and place a wire rack over the sheet.
Using tongs, dip the chicken into the yogurt mixture until thickly coated and arrange on the wire rack. Discard the excess yogurt mixture. Broil the chicken until lightly charred and the thickest part of the breasts registers 160- 165 degrees on an instant read thermometer, 10-18 minutes, flipping the chicken halfway through.
Let the chicken rest for 5 minutes, then cut until 1 inch chunks and stir into the warm sauce (do not simmer the chicken in the sauce). Stir in the cilantro, season with salt to taste, and serve. Serves 4-6.