Heat ghee/butter in a casserole or kadai over medium heat. Add onions and saute till golden.
Add ginger, tomatoes, bay leaf, green chili and cinnamon. Cook on low heat, stirring constantly for 7-8 minutes.
Add water, cardamom, turmeric, cumin, chili powder, garam masala and ketchup. Allow to simmer on low heat for 5 minutes. (At this point, the curry can be pureed into a smooth sauce using a hand blender. I chose to leave the curry chunky and not blend it).
Add the paneer cubes and cream. Season with salt and add sugar. Cover with lid and simmer on low heat for approximately 8-10 minutes.
Garnish with freshly chopped coriander leaves and serve with steamed rice or roti.
Notes
Paneer is known as Indian Cottage Cheese. The cottage cheese that you will find in the supermarket stocked along with sour cream and cream cheese is usually a crumbly, soft version that is only used in baking. The same goes for ricotta cheese. When you want to make an Indian curry, look for the cottage cheese in the cheese section along with haloumi and fetta cheese slabs. The cottage cheese that you will find in vaccuum sealed packeted slabs is the one you want to use in this recipe. The firmness of this cottage cheese makes it easy to cut and handle, like baked ricotta cheese.Paneer can be deep fried before adding to a curry for a richer taste. This is not always the healthiest of options, but offers you the freedom to stir freely and mix things well. If paneer is not deep fried, it is more delicate and prone to crumbling, hence in the recipe above, it is added right at the end of the cooking process and is not stirred until it is time to serve (as you can see from the pictures, the cream is still as it was poured before simmering).