Chicken Marinade: Whisk together all marinade ingredients, coat chicken, and marinate for 15 minutes to 1 hour or ideally overnight in the fridge.
Cooking Chicken: Sear marinated chicken in batches until browned, then set aside.
Sauce Preparation: In the same pan, sauté onions, ginger, and garlic in butter. Add spices, stir, then pour in tomato sauce. Simmer until the sauce thickens.
Creamy Finish: Stir in heavy cream, add partially cooked chicken back to the pan. Cook until chicken is done and the sauce is thick. Add water only if necessary.
Serving: Serve over basmati rice, with Naan bread, and garnish with chopped cilantro.