Wash and soak the beans in water for 7-8 hours or overnight.
After 7-8 hours, add the beans, and around 4 cups of water in a pressure cooker and cook till 4-5 whistles. Use the same water in which beans were soaked to cook it. If that water is not enough, add more normal water.
Grind onion, garlic, and ginger in a grinder to make a paste. Take the paste out in a bowl and keep aside. In the same grinder, make a paste of tomatoes and green chilies.
Heat oil in a wok and add all the whole spices to it. Saute for a few seconds till the spices become fragrant and then add the onion paste and salt. Cook for around 12-15 minutes or till the onion paste becomes golden brown.
In a bowl mix all the spice powder with around 2 tablespoons of water and add it to the onion paste. Saute for around a minute and then add in the tomato paste. Cook for around 7-8 minutes till the tomato paste gets nicely cooked and changes color to bright red.
Once the tomatoes are nicely cooked add boiled beans and water to the wok. Mix well and cook for around 8-10 minutes on medium flame.
Finally add garam masala and coriander leaves, mix, and cover the pan. Cook the curry for another minute before switching off the gas.
Serve hot with Indian bread or rice.