Drain the soaked rajma and rinse well. Add to a pressure cooker with 3.5 cups of fresh water, the bay leaf, black cardamom and salt. Pressure cook for 6 to 7 whistles (about 20 to 25 minutes) until the beans are completely soft — a bean pressed between your fingers should squash with no hard core.
Keep the beans in their cooking water; that starchy liquid becomes part of the gravy.
Heat the oil or ghee in a heavy pan and let the cumin seeds crackle. Add the onion and cook on medium heat for 8 to 10 minutes until deep golden.
Add the ginger-garlic paste and green chillies; cook for a minute until the raw smell goes.
Add the tomato puree and cook for 8 to 10 minutes, stirring now and then, until the masala is thick, glossy and leaves oil at the sides.
Lower the heat and stir in the chilli powder, coriander powder and turmeric. Cook for a minute so the spices lose their raw edge.
Pour in the rajma with all its cooking water. Mash a ladleful of beans against the side of the pan and stir them back in — this gives the gravy its classic creamy body without much cream.
Simmer for 10 to 12 minutes. Add the garam masala and crushed kasuri methi, adjust the salt, then stir in the cream and warm through for a minute without boiling.
Garnish with coriander and serve hot over steamed basmati rice with a little ghee on top.