In a saucepan over medium heat, melt the butter.
Add the onion and saute, stirring occasionally, until tender and translucent, 8-10 min.
Add the coriander, cumin, ginger, turmeric, and cayenne and stir to mix well.
Reduce the heat to low and cook, stirring occasionally, to release the flavors of the spices, 2-3 minutes.
Add the lentils and then gradually add the water or stock, stirring constantly.
Bring to a boil over high heat, reduce the heat to low, cover partially, and simmer until the lentils are very soft, 30-45 min.
Stir in the tomatoes and lemon juice and cook until heated through.
Season with salt and pepper.
To serve, sprinkle with mint or cilantro.