In a mixing bowl, combine all of the chicken ingredients, except for the cut chicken breasts, and mix well. Add the chicken pieces to the bowl and mix or toss until the chicken is completely coated in the sauce.
Cover with plastic wrap and place in the fridge. Allow the chicken to marinate for 30 minutes. (If needed, this step can definitely be skipped, and you can cook the chicken immediately. Marinating will create a better flavor overall, but can easily be skipped if needed, and you’ll still have a very delicious butter chicken.)
After 30 minutes, heat a large skillet over medium heat(I love using a cast iron skillet!), add the marinated chicken and cook, stirring often until the chicken is cooked through. Remove the cooked chicken from the pan and set it aside until ready to use.
In the same pan, melt the butter. Once the butter is hot and bubbly, add the diced onion and cook until it is translucent. Add the minced garlic and dried ginger and cook until fragrant
Add the remaining spices, mix well, and cook, stirring often for 2-3 minutes or until fragrant. It should have a very warm and spicy smell.
Then add the canned tomatoes and bring the mixture to a gentle simmer. Continue simmering, stirring often until the tomatoes have broken down, 5-10 minutes.
Remove the pan from the heat.
Now it’s time to blend your sauce. I like to blend mine right in the pan using an immersion blender. But you can also transfer the mixture to a bowl and then blend with an immersion blender. Or puree the sauce using an upright blender. (see notes for how to make an extra creamy sauce.)
Once the sauce is blended, return the sauce to the pan(if needed) and return the pan to the heat, and bring it back up to a simmer. Add the heavy cream and mix well.
Finally, return the chicken to the pan and cook, stirring often, until the chicken is heated through, about 5 minutes.
Serve over a bed of rice or with fresh naan(or both!) Or my personal favorite with a side of roasted broccoli. Enjoy!