The first step is to blanch the spinach. Bring a pot of water to a rolling boil and dunk the washed spinach leaves in it. Let it simmer for about 2 mins and then remove. Puree to a smooth paste.
Drain the water and in the same bowl, heat the ghee or oil. Add the cumin powder and within 5 seconds, add the chopped onions. Saute until golden brown and add the spice powders like coriander powder, turmeric, chilli powder, and hing. Fry for a few seconds, taking care not to burn them spices.
Next, add the minced ginger and garlic and the tomato paste if using. Mix well and add the pureed spinach.
Top this off with the milk. Mix well, bring to boil and add the kasuri methi and salt.
Cook covered for about 6-8 mins until the spinach is completely cooked and spices have blended well into the gravy. Gently add the paneer pieces to the gravy. Top off with a tbsp of curd (plain yogurt) if you want the gravy to be thicker.
Sprinkle garam masala. Mix well and remove from the stove.
You can fry the paneer pieces in some oil, dunk it into hot water for a few seconds, squeeze and set aside to be added to the gravy later. This makes the paneer softer. Since I used fresh homemade Paneer, I avoided this step.
Adjust the quantity of spices to your liking. For me, these quantities work out perfectly.
You can add a couple of green chillies to the spinach while grinding instead of using red chilli powder. I generally do this but didn't have any fresh green chillies in hand that day.