Cook bacon in a large saute pan over medium-high heat until crispy, stirring occasionally.
Add the onions, green pepper, serrano pepper, and sauté for 3 minutes. Add the garlic and sauté for 30 seconds.
Add in drained beans, tomatoes, beer, stock, 3 cups water, salt, cumin, and pepper; mix well.
Continue cooking until the beans reach a simmer. Then reduce heat to medium-low, and continue simmering partially covered for about 60 - 90 minutes, or until the beans and soft. Stir the beans occasionally throughout the entire cooking process to make sure they do not burn or stick to the bottom of the pot; add more water or stock if necessary.
Taste and add additional salt and pepper to taste, if necessary. Let it rest a bit before serving, the soup will thicken as it cools.
Serve the beans topped with fresh cilantro, if desired.