In a large pot or Dutch oven, heat olive oil over medium heat. Add onion and cook until softened, about 5 minutes.
Add garlic and cook for 1 minute more.
Add diced potatoes, corn, and chicken broth. Bring to a boil, then reduce heat and simmer for 15-20 minutes, or until potatoes are tender.
Using an immersion blender, partially blend the soup to desired consistency. Alternatively, carefully transfer a portion of the soup to a blender and blend until smooth, then return to the pot.
Stir in milk and chicken. Heat through.
Season with salt and pepper to taste.
Serve warm, garnished with fresh cilantro and diced avocado.