Bring water and beans to a boil, reduce heat and allow to simmer for 2 minutes. Turn off heat under the pot and let rest for 1 hour.
While the beans are resting heat the oil over medium-high heat, add the cumin seeds, and cinnamon stick. Allow this to sizzle for 5-6 seconds, then add the onions and garlic and stir this till the onions are getting brown. Add the mushrooms, tomatoes, coriander, ground cumin, turmeric, cayenne and cook for 1 minute. Cover and cook for another 10 minutes. Turn off the heat.
Bring the beans to a boil, cover and simmer for 20-30 minutes.
Add the mushroom mixture to the beans.
Simmer uncovered on medium-low heat for 30 minutes, stirring occasionally.
Remove cinnamon stick and sprinkle with cilantro before serving.