How to Make It
In a pot, cover the lentils, cardamom and sliced ginger with 1 inch of water. Bring to a boil and cook over moderately high heat until the lentils start to soften, about 10 minutes. Drain the lentils and transfer to a bowl; discard the cardamom and ginger.
Melt 3 tablespoons of the butter in the pot. Add the onion, garlic and minced ginger and cook over moderate heat, stirring occasionally, until softened, 8 minutes. Reduce the heat to low. Add the coriander, cumin, cayenne and garam masala and cook, stirring, until fragrant, 4 minutes.
Add the stock, tomatoes and lentils to the pot and bring to a boil over high heat. Simmer over moderate heat until the lentils are softened and the soup has thickened, about 1 hour. Stir in the remaining 2 tablespoons of butter and season with salt. Ladle into bowls and serve.