Cut the chicken into even size chunks or cubes.
Mix the spices under the chicken marinade in a bowl.
Add the greek yogurt and mixed spices to the chicken.
Stir to coat all the pieces. Marinate for at least 30 minutes (or up to overnight, if time allows).
Heat the coconut oil in a large skillet over medium heat.
Once hot, add the chicken (working in batches so you don't overcrowd the pan).
Sear 2-3 minutes per side until lightly browned but not all the way cooked through. Be sure to save any excess marinade as we add it to the sauce in a few steps. Transfer the semi-cooked chicken to a plate and set aside until ready to use.
In the same pan (adding more oil if needed), add the onions, garlic and ginger.
Cook, stirring frequently, until the onions are soft and translucent, about 5 minutes.
Add the spices and stir until fragrant, about 20-30 seconds.
Add the butter and cook until melted, stirring frequently.
Add the coconut milk to the pan and use your spatula to scrape up any browned bits stuck to the bottom.
Add the tomato sauce, paste and any remaining yogurt marinade (there should be about 1-2 tbsp worth).
Stir to combine.
Bring mixture to a boil, reduce the heat and allow to simmer, stirring occasionally, for 15-20 minutes or until the sauce has reduced and thickened.
Add the chicken and all their juices back to the pan and cook for an additional 8-10 minutes or until the chicken is tender and cooked through.
The sauce should be nice, thick and bubbly at this point! Remove from the heat and season to taste with salt and pepper, if needed.
Transfer to bowls with hot steamed rice, naan bread and garnish with fresh chopped cilantro, if desired.