Drain and rinse the soaked soya beans. In a large pot, add the soya beans and enough water to cover them. Bring to a boil and cook until the beans are tender, approximately 30-40 minutes. Drain and set aside.
In the same pot, add the red lentils and enough water to cover them. Cook the lentils until they are soft and mushy, about 20-25 minutes. Once cooked, mash the lentils using a spoon or a blender. Set aside.
In a separate pan, heat the cooking oil over medium heat. Add the cumin seeds and let them splutter. Then, add the chopped onions and cook until they turn golden brown.
Add the minced garlic and grated ginger to the pan and sauté for a minute until fragrant.
Add the chopped tomatoes and cook until they soften and release their juices.
Reduce the heat to low and add the turmeric powder, cumin powder, coriander powder, garam masala, and salt. Mix well and cook for a couple of minutes to allow the spices to blend.
Add the mashed lentils and cooked soya beans to the pan. Stir everything together, ensuring the ingredients are well combined.
Pour water as needed to achieve the desired consistency. Cover the pan and simmer the dal for 10-15 minutes to allow the flavors to meld together.
Garnish with fresh cilantro and serve hot with steamed rice, roti, or naan bread.