Wash and soak black-eyed beans in water for 7-8 hours or overnight.
Put the soaked beans and around 4 cups of water in a pressure cooker. Cook till 4-5 whistles or until the beans are cooked.
Peel onion, garlic, and ginger. Roughly chop and put in a grinding jar. Make a coarse paste. Transfer to a bowl and keep aside.
In the same grinding jar, put roughly chopped tomatoes and green chilies. Make a smooth paste. Keep it aside too.
Heat oil in a cooking pot. Add all the whole spices and saute them for a few seconds or until they become fragrant.
Add onion paste and cook until it becomes golden brown. If the paste starts sticking to the pot before that, add a few tablespoons of water and continue cooking.
Add red chili powder, turmeric powder, coriander powder, and crushed kasoori methi. Also, add around 1- 2 tablespoons of water so that the powdered spices don't get burned. Cook for about a minute.
Add tomato paste and salt. Mix and cook on a medium flame for 7-8 minutes or until the tomatoes are nicely cooked.
Next, add cooked black-eyed beans and the water in which it was cooked. If required, add extra water too. Mix and cook covered for another 6-7 minutes.
Finally, add garam masala and chopped cilantro. Mix and serve hot.