Heat the oil in a 4-6 quart cooking pot or deep saucepan on medium heat.
Add whole spices, stir for 30 seconds, and now add the onions.
Sauté until three-quarter brown, about 8 minutes.
Add all the masalas and sauté for 3 minutes or until the oil starts to surface on the sides of the pan.
Add the kidney beans, water, and tomato paste. Cover and bring to a boil.
Boil for 30 minutes, then lower heat and simmer for about another 30 minutes, until nice and tender.
If the beans are drying out, add more hot water to sustain a nice amount of gravy.
When nearly done, mash some of the beans against the side of the pot to make a thicker gravy. Cook for another 5 minutes.
Pour into a serving dish and garnish with fresh chopped cilantro.
Serve with plain boiled rice, any pilaf, or roti. I have even eaten it poured over a plate of noodles!