In the large glass bowl, combine the yogurt, garlic, ginger, cumin, coriander, cardamom, cayenne and turmeric. Season with salt and pepper.
Marinate the Chicken
Using a sharp knife, make two or three shallow slashes in each piece of chicken. Add the chicken to the marinade, turn to coat, then cover and refrigerate overnight.
Roast the Almonds
In the small skillet, heat 1 teaspoon of the oil. Add the almonds and cook over moderate heat, stirring constantly, until golden, about 5 minutes. Transfer the almonds to a plate and let cool completely while you make the sauce. In the food processor, pulse the almonds until finely ground and set aside.
Preheat the broiler and position the oven rack about 8 inches from the heat.
Start the Sauce
In the dutch oven, heat the remaining 2 tablespoons of oil until shimmering. Add the onion, garlic, and ginger and cook over medium heat, stirring occasionally, until tender and golden, about 8 minutes. Add the garam masala, chile powder, and cayenne and cook, stirring, for 1 minute. Add the tomatoes with all the juices and the sugar, and season with salt and pepper. Cover partially and cook over medium heat, stirring occasionally, until the sauce is slightly thickened, about 20 minutes.
Bake the Chicken
While preparing the sauce, remove the chicken from the marinade, scraping off as much of the marinade as possible. Season the chicken with salt and pepper and spread the pieces on the foil-lined baking sheet. Broil the chicken, turning once, until just cooked through and browned in spots, about 12 minutes. Transfer to a cutting board and after cooling a few minutes, cut it into 2-inch pieces.
Finish the Sauce
After the sauce has simmered, add the cream and ground almonds and cook over low heat, stirring occasionally, until thickened, about 10 minutes longer. Stir in the chicken pieces. Simmer gently for 10 minutes, stirring frequently.