Boil paneer in plenty of water on a low flame for 20 minutes.
Heat the oil and 1 tbsp of the butter until hot, add the cardamom and cinnamon stick and follow, 10 seconds later with the onions. Cook on a moderate flame until the excess water has dried off and the onions have turned golden.
Add the ginger and garlic pastes and sautť, over a gentle flame, for 1 minute. Add the tomatoes, powdered spices and salt. Cook, over a moderate flame, for 20-25 minutes or until well reduced and you can see oil coming out of the sauce. Turn the heat up and fry this paste for a further 3-4 minutes. Add the paneer, butter and cream and 400ml water. Bring to a boil and simmer for another 5-7 minutes. You may want to add a little more water, depending on how thick you like your sauce. Taste and adjust seasoning and serve.