In a large mixing bowl, combine the chicken and all ingredients for marinade. Mix together and let marinate for at least 30 minutes to overnight if you can. The longer the better, especially for the breasts, which I marinate overnight for optimal tenderizing.
On a medium to high heat, heat the oil in a cast iron large skillet. When it is hot, add the chicken pieces in small batches of 3 or 4, making sure not to overcrowd. Brown them about 3 minutes on each side (don't worry if they don't seem fully cooked - they will continue cooking in the sauce). Set aside.
Melt the butter in the same pan. If it is too burnt, then use another pan. Sauté the onions until translucent, about 5 minutes, Scraping up any brown bits on the bottom of the pan.
Add the minced garlic and ginger, and sauté for 1-2 minutes, then add the garam masala, turmeric, cumin and coriander. Sauté for about 30 seconds, while occasionally stirring.
Pour in the tomato passata, chili powder, salt and pepper. Simmer for 10-15 minutes, stirring occasionally until the sauce thickens and becomes a deep brownish reddish color.
Add the heavy cream and brown sugar and stir. Add the chicken and its juices back into the pan and cook for an additional 8-10 minutes until the chicken is cooked and the sauce is thick and bubbling. Pour in water if you feel it is necessary to thin.
Garnish with cilantro and serve with basmati rice or warm naan bread.