Soak kidney beans overnight or at least for 4 hours, completely covered with water. You need more water than you think, as it soaks up and it will swell up.
Drain the beans and transfer them to a pressure cooker along with potato and add about 1 cup of water and ½ tsp salt.
Pressure cook for 4 whistles at least on medium heat or until they are well cooked. Let it cool down.
If using an Instant Pot, pressure cook for around 45 minutes at high pressure with natural pressure release.
They should be completely soft but should retain some shape. Set aside.
To a pot, add 2 tablespoons oil on medium heat. Once it becomes hot, add the cumin seeds and let them sizzle. Then add the chopped onions, followed by garlic, ginger and mix. Cook it for around 5-7 minutes, stirring often until they are translucent.
Add the chopped tomatoes and mix. Cook it for another 5 minutes.
Add all the spices one by one - Turmeric, coriander, red chili powder, garam masala and remaining salt.
Mix and cook on medium-low heat for around 10 mins until you start seeing oil on the sides of the pan.
Add the boiled beans along with all the water in which they were boiled. Add additional water if you think it needs some more water. I usually end up adding ½ cup water.
Stir well and set heat to low-medium.
Let the beans simmer for 10 to 15 minutes. While they are simmering, use the back of the spoon or masher to mash some of the beans. This makes the gravy creamier and thick. Avoids it being all watery.
Once it has simmered well, and you like the consistency, take it off the heat and garnish it cilantro.
Serve rajma with rice or rotis with a splash of lemon juice on top and enjoy!