Pick over and rinse the lentils and place them in a soup pot with the cold water. Bring to a boil, then reduce heat and simmer, uncovered, until tender, about 20 minutes.
While the lentils are cooking, heat the olive oil in a medium sized sauté pan and add the onion, 1/2 tsp salt, and a few pinches of cayenne. Cook over medium heat until the onions are soft, 7 - 8 minutes; then add the diced vegetables, another 1/2 tsp of salt, and the spices. Cook for 5 minutes, then stir in the garlic and ginger and cook for another minute. Add the vegetables and the tomatoes to the lentils and their broth. Cover and cook for 30 minutes. Season to taste with salt and cayenne. Garnish with the cilantro.