In a large 5-quart stock pot over medium-high heat, combine beans, water, beef broth, and beer. Bring to a boil. Reduce heat to low (slow boil) and cook for 1½ hours.
In a non-stick frying pan, cook chopped bacon. About 10 minutes into cooking the bacon, add onion. Cook until bacon is brown and crispy. Drain the grease.
Stir in garlic, salt, cumin, garlic powder, chili powder, black pepper, Serrano pepper, jalapeno pepper, tomatoes, cilantro, fried bacon and onions to the beans. Cover and cook for 3 more hours.
Remove from heat.
Serve in a bowl or with small corn or flour tortillas (street taco size), and sprinkle a small amount of Cotija cheese over the top (optional).