Cook the Potatoes:
Heat olive oil in a large pot over medium heat. Add the diced potatoes and cook for about 5 minutes, stirring occasionally. Add the diced onion and garlic and cook for another 2–3 minutes, until the onions are softened.
Add Liquids and Simmer:
Pour in the chicken broth, heavy cream, and milk. Stir to combine. Bring the mixture to a simmer and cook for 20–25 minutes, until the potatoes are tender and can be easily pierced with a fork.
Mash the Soup:
Once the potatoes are tender, use a potato masher or immersion blender to mash the soup until you reach your desired consistency. For a chunkier soup, mash just a little; for a creamier soup, blend it more thoroughly.
Season:
Taste the soup and season with salt and pepper as needed.
Serve:
Ladle the soup into bowls and top with crumbled bacon, shredded cheddar cheese, a dollop of sour cream, and chopped green onions or chives.