Melt butter in a deep 10-12 inch frying pan or skillet over medium heat.
Add onions and cook slowly, stirring often, until they are tender and translucent.
While onions are cooking prepare the can of tomatoes (for the picky eaters in your family), by lightly blending with a hand blender, or mashing with a potato masher, to eliminate as many chunks as possible.
Add garlic & gingerroot to the onions and saute for 1-2 minutes.
Stir in the chili powder, turmeric, cumin, cinnamon & coriander - Cook one more minute.
If you're using tomato paste, add it to the pan now, stirring well to combine it with the onion-spice mixture. If the pan is dry, add a Tbsp or more oil. Cook, stirring often, until the paste darkens to a dark brick red, about 3-4 minutes.
Add the can of tomatoes, whole, diced, or blended.
Stir in brown sugar, salt, and pepper.
Cover, reduce heat and simmer for 15-20 minutes.
Just before serving, add the cream & yogurt (or sour cream) and stir until fully incorporated. Heat until hot, but do not simmer or the yogurt will separate.
Add the chicken to the sauce and heat through.
Serve over hot basmati rice with cilantro to top.