Sauté the Aromatics: Heat olive oil in a large pot over medium heat. Add onion and garlic, cook until softened, about 5 minutes.
Add Liquids and Potatoes: Pour in vegetable broth and water. Add diced potatoes and ham. Bring to a boil, then reduce heat and simmer until potatoes are tender, about 15-20 minutes.
Create a Roux: In a separate small bowl, whisk together flour and a small amount of the hot soup liquid to form a smooth paste.
Thicken the Soup: Gradually whisk the roux into the pot of soup, stirring constantly. Cook and stir until the soup thickens.
Add Cream and Season: Stir in heavy cream, black pepper, and salt to taste. Heat through, but do not boil.