Pour beans into a large bowl, and sift through with your hands to ensure any small rocks are removed. Fill the bowl with enough water to cover the beans by at least two inches. let the beans soak for six hours to overnight.
Strain the water from the beans, pour beans into a large dutch oven and fill with enough water to again cover the beans by two inches. Add the chopped onion and cover, leaving a small crack between the lid and the pot. Bring to a low boil over medium heat and cook for 2-3 hours, stirring every 30 minutes to prevent any beans from sticking and burning to the bottom of the pot.
With 30 minutes of cook time remaining, add the spices, green pepper, and optional meat. Stir well to combine.
Remove beans from heat and either serve immediately or cover and keep warm for a couple hours before serving.