For paneer: Bring 8 cups whole milk to a boil. Add 3 T lemon juice and reduce heat. Keep liquid at a gentle boil until white curd separates from yellow whey, then remove from heat and pour through a colander lined with cheesecloth. Hold colander under cold water and rinse the curds, then gather corners of cheesecloth together and twist to remove excess liquid. Hang the bundle to drain for an hour, then place it on a work surface and weigh it down with a heavy object (such as a large pot filled with water) for half an hour. Remove the cheesecloth and cut the cheese into small cubes.
Lay the paneer, farmer's cheese, or tofu pieces in a single layer on a cookie sheet lined with paper towels and let dry for 10 minutes.
Puree the spinach and green pepper together in a food processor or blender. The puree should be as fine and velvety as you can make it.
Heat 4 T of the oil in a large, heavy, nonstick pan over medium heat. Dust the paneer pieces lightly with flour and add them to the pan. Fry them in batches, turning and tossing them until they turn light golden (about 2 or 3 minutes per batch). Watch carefully to ensure that they do not burn. Take them out and put on a dish and set aside.
Add 2 more T of oil to the same pan, along with the onion. Fry the onion, stirring constantly, until brown (about 20 minutes). Add the ginger and fry for an additional 2 minutes. Add the turmeric and green chilies, stir for a few seconds, and then add the spinach puree along with 1/2 cup water, salt, and sweet red peppers. Mix well and bring to a boil. Lower heat and cook, covered, for 2 minutes. Add the fried paneer, mix again thoroughly, and continue cooking for 2 more minutes. To serve, stir in the garam masala and fold in the remaining 2 T of oil to glaze and mellow the sauce.