Rinse the lentils and soak for 3 hours in cold water. Place lentils with the soaking water into a saucepan and add turmeric. Cover and cook over a medium-low heat for about 30 minutes, until soft. Drain, reserving the cooking water and set aside.
Warm the oil in a heavy bottomed saucepan. Add the cloves, cinnamon, cardamom and coriander and cook and stir for 1 to 2 minutes until fragrant. Be careful not to burn the spices.
Add onions and fry until golden brown. Stir frequently. Add garlic, ginger, chilli and curry leaves (optional) and fry for an additional 3 minutes. Add tomatoes, cover and simmer over a low heat for 15 minutes.
Add the lentils with remaining cooking liquid and simmer for another 10 to 15 minutes. Add water, if the mixture is too dry. Season with salt and pepper to taste. Remove cinnamon stick, cloves and chilli before serving.