Combine all marinade ingredients in a large bowl. Toss the cubed chicken in the mixture, cover and refrigerate for at least 1 hour and up to overnight.
When ready to cook, heat a large frying pan over medium heat. Brown the yogurt-marinated chicken pieces. Remove the chicken from the skillet and set aside.
Add oil and onions to the skillet and saute until onions have started to soften. Add garlic, ginger, crushed red pepper and Garam Masala and continue to saute. Stir in the tomato paste.
Pour in the tomato sauce and use a wooden spoon to scrape any brown bits off the bottom of the skillet. Add heavy cream and bring to a boil. Lower heat to a gentle simmer, add the chicken back to the skillet and simmer until thickened, 10-15 minutes.
Serve over cooked rice and garnish with lots of fresh cilantro.