Heat oil in a medium saucepan on medium-high heat.
Add onions and sauté till translucent and lightly brown. Approximately 4-5 minutes.
Add the ginger and garlic place and sauté for about 2 minutes until fragrant and the ginger starts to stick to the pan.
Add tomatoes and tomato paste and sauté for 7-8 minutes until the tomatoes are well blended.
Add all the spices and cook, frequently stirring, making sure the masalas do not burn.
Add 1/2 cup of chicken broth to blend the mixture. Remove from heat and leave to cool.
When cooled, put the masala mixture into a blender and blend until smooth.
Pour the blended paste back into the cooking pan.
Add the rest of the chicken stock. Blend and simmer for 5 minutes on medium-high.
Turn the heat to medium-low and add the yogurt. Stir well to blend and let cook on medium-low for an additional 5 minutes. Turn off and let rest for about 2-3 minutes before serving.
Pour into a serving bowl and garnish with cilantro and a swirl of heavy cream.