Slice tomatoes in half and scoop out pulp, pulp will be used for filling. Set aside.
For Filling: heat the oil in a saucepan over medium high, Test the heat by adding one cumin seed to the oil. If the cumin seed cracks right away, the oil is ready.
Add cumin seeds, asafetida as cumin seeds crack, add, ginger, coriander; turmeric, red chili, and salt stir for few seconds and add tomatoes.
Cook the tomatoes for about 2-3 minutes; add corn, green beans, green peas and paneer. Cook till vegetables are tender and the liquid from gravy has evaporated, this should take about 4-5 minutes. Vegetables should be very moist.
Stuff the tomatoes with filling, don’t over fill them. Set aside.
For Gravy: heat the oil in flat saucepan over medium heat, pan should be large enough to hold all the tomatoes in single layer, can not overlap the tomatoes.
Add cumin seeds as seeds crack add all purpose flour and stir fry for about one minute.
Add the milk slowly and keep stirring making sure there are no lumps. Add coriander, green chili, ginger, half the cilantro and salt, stir for few seconds.
After gravy comes to boil stir and put the filled tomatoes slowly in single layer. Cover the pan and lower the heat low medium. Let it cook for about 4 minutes, check the tomatoes, gently stirring gravy. If needed let it cook as needed, tomatoes should not be very soft as they will loose the shape.
Garnish with remaining cilantro. Serve hot.