Rinse the dal well, then soak it in water for 1 to 2 hours.
Thinly slice the onions. Peel the ginger and garlic, then quarter the tomatoes.
Add the tomatoes, ginger and garlic to a blender and blend to a smooth puree. Roughly chop the fresh coriander and set aside.
Rinse and drain the soaked dal, then transfer it to a pot with the water and turmeric. Bring to a boil, then reduce the heat and simmer for 15 minutes until the dal is almost cooked. It should still hold its shape, but break easily between the fingers.
Meanwhile, heat the oil in a separate frying pan and cook the onions until golden brown.
Add the tomato, garlic & ginger puree to the onions and cook over a medium heat for about 5 minutes, until the mixture thickens and deepens in colour.
Stir in the coriander, cumin, red chilli powder and sea salt, then cook for a further 5 minutes. so the spices release their flavour.
Add the partially cooked dal and its cooking water to the pan and stir well. Cover and cook for 10 minutes, over medium heat, allowing the flavours to meld together.
Once cooked, the dal should be soft and creamy, while still holding some shape. Adjust the seasoning to taste.
Garnish with the chopped coriander and sprinkle with chaat masala, if using. Serve with either flatbread or rice.