Rinse and soak the rajma (kidney beans) in enough water overnight or for 8 to 9 hours. Next day, discard the water and rinse the beans again in fresh water for a couple of times. Drain all the water.
In a 3 litre stovetop pressure cooker, take both the soaked rajma and water. Pressure cook on a medium to high flame for 15 to 20 minutes.
When the rajma is cooking, you can chop the onions, tomatoes etc.
Crush the ginger, garlic and green chillies in a mortar-pestle to a fine or semi-fine texture. Set aside
When the pressure drops naturally in the cooker, then only open the lid. Check if the rajma beans are cooked or not by taking a bite or pressing a few beans. They should be melt in the mouth and must be completely cooked and tender. The beans should not have an al dente texture or a slight bite to them. If the beans are cooked well; set aside or drain the beans. If the rajma are not cooked well enough, then pressure cook again adding some water if needed for some more minutes.
Heat oil + butter in another pot or pan on a low heat. Add cumin first and let them crackle & get browned.
Then add onions and sauté them till they caramelized or golden browned on a medium-low to medium heat. Take care not to burn them as this will give bitter tones in the curry. Light browning the onions is also alright. Keep on stirring the onions while sauteing them, for uniform cooking and also so that they don't get burnt.
Lower the heat and add the crushed ginger-garlic-chili paste. Stir and sauté for 5 to 10 seconds on a low heat until the raw aroma of the ginger and garlic dissipates.
Add the finely chopped tomatoes. Sauté for 2 to 3 minutes on medium-low to medium heat until the tomatoes become soft.
Add all the spice powders one by one - turmeric powder, red chili powder, coriander powder, asafoetida (hing) and garam masala powder.
On a medium-low heat or medium heat stirring often sauté the whole masala mixture until the fat starts leaving the sides of the masala base. This masala paste will become glossy, thicken and leave the sides of the pan.
Using a slotted spoon or a strainer remove the beans and add them to the masala. Stir and sauté for a minute.
Add 2 cups of water. If you prefer you can also add the cooked rajma stock instead of fresh water.
Add salt as required and stir the whole curry mixture.
On a low heat to medium-low heat simmer without a lid for 10 to 12 minutes or more time until the curry thickens slightly. It should not be watery.
Mash a few rajma beans with the spoon. This helps to thicken the curry.
When the rajma masala has thickened and comes to the right consistency which is neither too thick nor thin, then add the crushed dried fenugreek leaves (kasuri methi) and cream. You can skip the cream if you prefer.
Stir and simmer for 30 seconds to 1 minute. Turn off the heat.
Serve rajma masala with steamed basmati rice, jeera rice or naan or roti or paratha. You can garnish with some coriander leaves when serving.
