In a large, heavy pot over medium heat, cook the bacon, stirring often, until fat is rendered and meat starts to brown. Add onion and cook, stirring occasionally, until soft, about 3 minutes. Sprinkle with flour and stir until flour smells toasty, but hasn't started to brown, about 3 minutes.
Add potatoes and broth. Bring to a boil, stirring occasionally. Reduce heat and simmer until potatoes are barely tender when pierced, about 5 minutes. Add chicken and corn and bring to a boil, then reduce heat to low and stir in cream to taste, Heat through, about 2 minutes.
Taste for seasoning and add salt and pepper accordingly.
Serve in soup bowls, garnished with tomatoes, avocado, cilantro, and a squeeze of lime juice.