Cook the lentils in boiling water for about 20 minutes until tender and quite soft then drain and set aside.
Put the onion in a pan with the garlic and butter. Cook slowly over a moderate heat until the onion has started to colour. Add the ginger and sweat for a minute.
Add the tomatoes and chillies to the pan and continue cooking for about 5 minutes until quite sludgy.
Add the cream and the garam masala. Season and cook gently on a low heat for about 10 minutes.
Stir in the drained lentils and when they have warmed through tip into a serving dish.