Soak kidney beans overnight in 4 cups water. In the morning, drain the water in which the beans were soaked and then transfer them to a pressure cooker.
Add 3.5 cups water, 1 teaspoon salt and pressure cook on high heat for 1 whistle, then lower the heat to medium and cook for 15 minutes or according to the pot the time may vary. Let the pressure release naturally.
Beans should be completely soft when done set aside.
To a pan, add 2 tablespoons oil on medium heat. Once hot, add the cumin seeds and let them crackle.
Then add the chopped onions and mix.
Cook the onions for around 3-4 minutes, until we get rid of the raw smell and they turn golden brown in colour. Don’t rush the step else curry will have raw onion taste.
Then add ginger-garlic paste and green chili and cook for 1 minute.
Add the pureed tomatoes and mix. Cook for 5 minutes.
Then add the spices- coriander, turmeric, kashmiri red chili, garam masala and salt.
Mix and cook on medium-low heat for around 10 mins until oil oozes out of masala.
Add the boiled beans along with all the water in which they were boiled. I added additional 1 cup water here. Stir well and set heat to low-medium.
Let the curry simmer for 20 to 30 minutes. In between use a potato masher to mash some of the beans. This makes the curry creamier and thickens it.( optionally)
Then after it has simmered for 20 to 30 minutes, add kasuri methi and cilantro. If you want you can also add bit of cream (optional, around 1 tablespoon I did not add).
I also added another 1/2 cup water here as it became quite thick while simmering. You can adjust consistency to preference.
Finally add a tablespoon of ghee and mix. If you want you can fry some ginger julienne in ghee and then add that to the rajma too. Turn off the heat. Serve rajma with rice or roti and enjoy!