In a pan, boil 2-3 cups of water. Once the water comes to a rolling boil, add the ginger, garlic, chopped tomatoes, onions, cashews and the whole chilies. Boil them for 10-12 minutes.
Cool them down once they have boiled. Drain the water. Purée them together until smooth. Strain the purée and set it aside.
Heat oil and butter in a large pan.
Once they are hot, add whole cinnamon stick, black cardamom and bay leaf. Let them crackle around for a minute.
Add the strained purée. Cook it for 7-8 minutes on low heat. Stir it around in between.
Season the curry with salt, turmeric powder, garam masala powder, coriander powder, jeera powder. Mix well and let them cook for about 5 minutes or until the oil and the butter separate from the curry. Add sugar, crushed kasuri methi and cream. Mix well.
Add the paneer cubes. Stir around gently. Cover and cook for another 5 minutes. You can add some water if needed, to correct the consistency of the curry.
Turn off the heat, serve it immediately. You can garnish the Shahi Paneer with some more cream and fresh coriander leaves.