In a large mixing bowl, add all of the ingredients from the "marinade" section. Stir until chicken is well coated and spices are well combined into the mixture. Cover with plastic wrap and let it sit in the refrigerator for at least 30 minutes (or as long as overnight).
While chicken is marinating, prep the remaining ingredients.
When it's time to make the sauce, add the butter or ghee to a large skillet over medium-high heat. Add the onion and cook for about 5 minutes. Next, add in the garlic and ginger and cook an additional 30 seconds.
Add the marinated chicken to the pan and cook until browned on all sides. This should take about 8 minutes.
Add in the tomato sauce, Indian spice, and salt. Reduce heat and simmer for about 15-20 minutes, stirring occasionally, until the chicken has cooked through (165 ℉) and the sauce has thickened.
Add in the heavy cream, stir to combine, and simmer on low for an additional 5 minutes.
Garnish with cilantro and serve with rice and/or naan bread! Enjoy!