Soak the lentils, chickpeas and beans overnight in plenty of water.
Drain the soaked legumes and place in a pressure cooker. Cover with water by about an inch, but do not fill your cooker more than 2/3 full.
Cover and lock the pressure cooker and place over high heat. When it starts to let out a steady stream of steam, reduce heat to low and cook for 20 minutes from this point. Remove the cooker from the heat and allow the pressure to release naturally or using the quick release method on your cooker.
Meanwhile, heat the oil in a large pan over medium high heat. Add the onion, ginger, garlic and cumin and cook and stir for 3 minutes, or till golden brown. Add the tomatoes and cook a further 2 minutes, then add the ground coriander, garam masala, chilli powder, turmeric and salt.
Once the dal has finished cooking in the pressure cooker, remove the lid and add the onion-spice mixture to the dal. Place the uncovered cooker over medium high heat and simmer all together till thickened. Add the coriander leaves, butter and yoghurt or cream, then serve.
Cooking beans or lentils in a pressure cooker can create foam, which may block the steam from properly releasing. To avoid this, use a large pressure cooker and ensure that it is not filled more than 2/3 full. Alternatively, cook the dal in a regular pan with plenty of water; keep at a steady simmer (not rolling boil) for about 1 hour, or until tender.