Bring a large pot of water to a boil and blanch the chopped spinach for 2-3 minutes until wilted.
Drain the spinach and immediately transfer it to a bowl of ice water to stop the cooking process.
Drain again and puree the spinach in a blender or food processor until smooth. Set aside.
In a skillet, heat 1 tablespoon of ghee or oil over medium heat.
Add the paneer cubes and fry until they are golden brown on all sides. Remove and set aside.
In the same skillet, add the remaining ghee or oil.
Add the cumin seeds and let them sizzle for a few seconds until fragrant.
Add the finely chopped onion and cook until it becomes soft and translucent.
Stir in the minced garlic, ginger, and green chilies (if using). Cook for another minute.
Add the chopped tomatoes to the skillet and cook until they soften and release their juices.
Stir in the ground coriander, turmeric powder, garam masala, and salt. Cook for a few minutes until the spices are well combined with the tomatoes.
Add the pureed spinach to the skillet and mix well with the tomato and spice mixture.
If the mixture is too thick, you can add a little water to achieve your desired consistency.
Add the fried paneer cubes and simmer for 5-7 minutes, allowing the flavors to meld together.
Stir in the heavy cream if using, and cook for another 2 minutes.
Garnish with fresh cream if desired.
Enjoy your meal!