Heat oil in a pan, add mustard seeds and urad dal.
When mustard seeds pop, add peanuts and toss for few seconds, then add soaked chana dal. Lightly roast for a minute or two until both peanuts and chana dal are light golden in color.
Add cashews and mix well, add green chilies, curry leaves and lightly toss. If using chopped ginger, add along with green chilies.
Now add onions and sauté until onions are translucent.
Add ginger garlic paste and sauté until the raw smell of ginger is gone. If using chopped ginger, add along with green chilies.
Add turmeric, salt and mix well.
Add tomatoes, mix, cover and cook for 2-3 minutes or until tomatoes are mushy.
Add water, milk and bring to a boil.
Reduce the heat or turn off the fire, add sooji, stirring constantly to avoid any lumps. It is crucial you turn off the fire or keep it on the lowest flame.
Once the sooji is properly mixed in water, turn the flame to high and give it a good stir.
Then reduce the fire to medium, cover and cook for 2-3 minutes until water is absorbed.
Give a good stir, cover and continue to cook on low flame for another 3-5 minutes or until sooji is completely cooked.
If you used only oil, add about a teaspoon ghee, mix well and simmer for a minute or two. This is optional but that bit of ghee enhances the flavor of upma.
Garnish with cilantro and serve hot with some lime juice, lime pickle or your favorite chutney.