Dry roast the semolina: Heat a dry, heavy-bottomed pan on medium heat. Add the semolina and roast it for about 4-5 minutes, or until it turns golden brown and gives off a nutty aroma. Stir constantly to prevent burning. Remove the roasted semolina from the pan and set it aside.
In the same pan, heat the oil or ghee over medium heat. Add the mustard seeds and cumin seeds. Allow them to splutter.
Add the urad dal, chana dal, asafoetida, and curry leaves. Sauté for a minute or two until the dals turn golden brown.
Add the chopped onions, green chilies, and grated ginger. Sauté until the onions become translucent.
Add the chopped tomatoes and mixed vegetables. Cook for a few minutes until the vegetables become slightly tender.
Pour in the 2 cups of water and add salt. Bring the water to a boil.
Gradually add the roasted semolina, stirring continuously to avoid lumps. Reduce the heat to low.
Cover the pan with a lid and let the upma simmer for about 2-3 minutes, or until it reaches your desired consistency. If it becomes too thick, you can add a little more hot water and stir.
Garnish with fresh cilantro leaves.
Serve hot with a squeeze of lemon juice if desired.