Heat oil and butter in a large dutch oven over medium-high heat. Add onion and 1 tsp of the salt. Cook until onion is soft and golden, about 10 minutes (longer if onion was fridge-cold or not super-finely chopped). Stir frequently and reduce heat if it starts charring. It should be translucent and almost caramelized.
Reduce heat to medium and stir in cumin seeds, cooking until they smell fragrant (about a minute).
Add chili, garlic and ginger and remaining spices and cook a minute more.
Add tomato paste and cook a few minutes until it turns a shade darker and the oil shimmers on top.
Stir in the water, lentils, beans, cream and remaining 1 tsp salt.
Reduce heat to low simmer, covered, at least 10 minutes. (If you have time to simmer longer, the flavour gets even better with time. Use 1 cup water instead of ½ cup because it will thicken up quite a bit, then simmer up to 1 hour, stirring every now and then.)
Stir in cilantro and serve.