In a large bowl combine the yogurt, garlic, ginger, cumin, coriander, cardamom, cayenne and turmeric. Season with salt and pepper.
Make slashes in each piece of chicken then add the chicken to the marinade, toss to coat and refrigerate overnight.
Preheat your Big Green Egg to 400°
Remove the chicken from the marinade and scrape off as much of the marinade as possible. Season the chicken with salt and pepper and cook direct on the BGE for 4 minutes per side.
Transfer to a cutting board and cut it into 2-inch pieces.
In a small skillet, heat 1 teaspoon of the oil and add the almonds, cook over medium heat, stirring constantly until golden (about 5 minutes).
Transfer the almonds to a plate and let cool completely.
In a food processor, pulse the almonds until finely ground.
Preheat a large cast-iron Dutch oven on the BGE.
Heat the remaining 2 tablespoons of oil until shimmering then add the onion, garlic, ginger and cook over moderate 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 their juices and the sugar and season with salt and pepper.
Cover partially and cook over moderate heat, stirring occasionally, until the sauce is slightly thickened, about 20 minutes.
Add the cream and ground almonds and cook over low heat, stirring occasionally, until thickened, about 10 minutes longer.
Stir in the chicken; simmer gently for 10 minutes, stirring frequently, and serve.