Place beans in a large pot or bowl and cover with water. Cover and let stand for 6-8 hours or overnight. Strain the beans and set aside.
In a large pot, heat the oil over medium heat. Add onions and saute until soft and translucent, about 3-4 minutes. Add garlic and saute until fragrant, about 30 seconds.
Add stock or water, chili powder, cumin, sugar, and beans. Stir, bring to a boil, cover, reduce heat, and simmer for 60-90 minutes or until beans are cooked through and tender.
Add crushed tomatoes and bell pepper and bring to a simmer. Cook for 15-20 minutes or until bell peppers are tender. Add salt, pepper, and more seasonings to taste.
Serve with optional toppings and enjoy!