Soak the beans overnight in cool water, covering the beans by 2 to 3 inches. The next day, drain and rinse the beans well.
In a large stockpot, cover the beans with cold water by 2 inches. Bring to a boil, then cover and reduce the heat to medium-low and simmer until beans are tender, about 45 minutes to 1 hour, being careful not to overcook. Stir occasionally while cooking. Once cooked, drain and rinse well.
Once the beans are done, heat the olive oil in a large 4-quart heavy saucepan over medium heat. Add the onions, bell peppers, carrots, and celery with ¼ teaspoon of salt, and sauté until slightly soft, 5 to 7 minutes. Add the garlic and sauté for 1 more minute.
Add the crushed tomatoes, vegetable stock, cumin, turmeric, cayenne, and beans to the vegetables. Simmer for 30 minutes, stirring occasionally. Season with salt and pepper, and then garnish with the cilantro and serve with crusty bread.