Place the lentils in a large bowl, cover with water and mix for about 10 seconds. Then pour out the water and repeat, 3-4 times, until the water is clear.
Place the lentils in a large saucepan and cover with 4 litres of water. Bring to the boil, then simmer for 2-3 hours. Skim off any empty shells that rise to the surface as they rise, adding water as needed to cover the lentils. The lentils need to be completely soft, the shells should come off. If you squeeze a lentil, the consistency should be creamy rather than crumbly. When the lentils are cooked through, turn off the heat and let the pan sit for about 15 minutes.
In a bowl, mix the garlic and ginger paste, tomato paste, salt, deggi mirch and garam masala to a paste.
Carefully pour off the cooking water from the lentils and add new water so that the lentils are covered by about 3-4 cm. Bring to a boil again over medium heat and add the spice paste and butter. Cook vigorously for about 30 minutes, stirring frequently so that the mixture does not stick to the bottom.
Reduce heat and simmer for about 1-1.5 hours, stirring regularly. Add water if the liquid level gets close to the lentils. The consistency should be thick and creamy, where the creaminess should come from the lentils dissolving with the liquid, not from the liquid boiling away.
Add cream and continue cooking for about 15 minutes.