Boil 4 cups water in a large pot. Add spinach and cook for 1-2 minutes until wilted. Transfer immediately to a bowl of ice water to stop cooking. Squeeze dry in a towel and blend with ¼ cup water until smooth.
1 lb fresh spinach, 0.25 cup water
Pat paneer cubes dry with paper towels. Heat 2 tablespoons oil in a frying pan over medium heat. Fry paneer for about 3 minutes per side until golden brown, working in batches to avoid crowding. Set aside.
14 oz paneer cheese, 4 tbsp oil
Heat 2 tablespoons oil in a heavy-bottomed pan over low-medium heat. Add cumin seeds and cook for 1 minute until fragrant. Add garlic, ginger, and green chilies and cook for 2 minutes, stirring constantly.
1-2 green chilies, 1 tsp cumin seeds, 4 cloves garlic, 1 inch ginger, 4 tbsp oil
Add diced onion and cook for 5 minutes until softened. Stir in tomato, turmeric, and half the garam masala. Cook for 3 minutes until the tomato breaks down. Add the spinach puree and simmer uncovered for 10 minutes, stirring occasionally.
1 medium onion, 1 medium tomato, 0.5 tsp turmeric, 1 tsp garam masala, 1 lb fresh spinach
Remove the pan from heat and slowly stir in the cream or yogurt to prevent curdling. Add the fried paneer cubes and remaining garam masala. Return the pan to low heat and warm through for 2 minutes. Taste and adjust salt as needed.
0.5 cup heavy cream, 14 oz paneer cheese, 1 tsp garam masala