In a bowl, combine all of the spices from STEP 1 in the spice box for the chicken marinade, let it marinate for 30 minutes to an hour (or overnight if time allows).
Heat oil in a large skillet or pot over medium-high heat. When sizzling, add chicken pieces in batches of two or three, making sure not to crowd the pan. Fry until browned for only 3 minutes on each side. Set aside and keep warm. (You will finish cooking the chicken in the sauce).
Heat butter in the same pan. Fry the onions until they start to sweat (about 6 minutes) while scraping up any browned bits stuck on the bottom of the pan.
Add garlic and ginger and sauté for 1 minute until fragrant, then add the spices from STEP 2 from the spice box. Let cook for about 20 seconds until fragrant, while stirring occasionally.
Add crushed tomatoes and let simmer for about 10-15 minutes, stirring occasionally until sauce thickens and becomes a deep brown red colour.
Remove from heat, scoop mixture into a blender and blend until smooth. You may need to add a couple of tablespoons of water to help blend (up to ¼ cup). Work in batches depending on the size of your blender.
Pour the pureed sauce back into the pan. Stir in the cream through the sauce. Add the chicken with the juices back into the pan and cook for an additional 8-10 minutes until the chicken is cooked through and the sauce is thick and bubbling.
Garnish with chopped cilantro and serve with fresh, hot garlic butter rice and fresh homemade Naan bread!