Wash the daal and rinse a couple of times. Soak it for atleast an hour or for best reult for 3-4 hours.
Drain the water and add daal to the pot. Add water. It should be enough to cover the daal. Once it starts to boil turn the heat to medium low. Continue to cook untill daal is 90% cooked. Check with breaking apart a grain with hand.
Drain the daal, reserving the water for use later.
In a pot heat oil and add onions. Fry them untill soft and then add garlic and ginger paste. Add all the spices except salt and garam masala. Fry for a minute.
Add tomatoes and green chilli and cook for couple of minutes , add a cup of water and cover the pot. Cook on low heat untill the onions and tomatoes are soft.
Add Boiled daal and fry for a minute. Add at least 2 cups of water reserved from straining. You can add more water if you prefer thin consistency. Add salt and garam masala. Cover the pot and cook for 15-20 minutes on low flame.
Garnish with coriander, chillies and ginger.
Serve the daal with naan or steamed rice.