Prepare the Garam masala: begin by toasting the spices until fragrant. Once you smell their aromas, remove it from the heat. The goal is to heat the spices just until they release their oils and fragrance.
In a spice grinder, grind to a fine powder; working in batches if necessary.
Store for up to two months in a glass jar with a tight fitting jar, away from heat and moisture.
Heat your oven to 400°F. Line a sheet pan with aluminum foil.
In a saute pan, heat the ghee over medium heat.
Add the garlic and ginger and sweat. Cook for 3 minutes.
Add the chili powder, turmeric (be careful- it stains!) and the Garam masala spice blend. Stir to create a paste.
Thin the paste with the cranberry juice, adding more if necessary to achieve the consistency of tomato sauce.
Remove from heat and allow to cool down enough to handle.
In a large mixing bowl, combine the chicken and the cooked paste. Massage the paste into the chicken to coat it.
Arrange the chicken pieces onto the sheet pan and bake for 20 minutes.
Remove the chicken from the oven and allow to rest for 15 minutes,
While the chicken is resting, and using the same saute pan used to make the paste, heat the second measurement of ghee over medium heat.
Add the onions and garlic and saute until translucent, about 3 minutes.
Add the tomatoes and cook until they begin to break down, another 5 minutes.
Add the spices and cook for 1 minute.
Pull the pan off of the heat and pour in the cream, stirring constantly.
Return the pan to heat and add the butter. Stir to combine. Keep warm, stirring occasionally.
Cut the cooled chicken into one inch cubes and fold into the butter sauce. Warm through and season to taste with salt and pepper.
Sprinkle a healthy amount of chipped cilantro to finish off the dish!