Heat a large dutch oven over medium high heat, add the olive oil and allow to heat. Place the hambone in the pot and sear in the oil, allow to cook for about 1-2 minutes, then turn to cook the other side.
Add in the diced onion, carrots and celery. Cook until softened. Then add in the garlic and cook an additional 30 seconds.
Pour in the water, add the bayleaf. Bring to a boil. Cover and allow to simmer for at least 30-40 minutes.
After broth has simmered, remove the ham bone from the pot, remove any meat left on the bone, and you can discard at this point.
Add in the chopped ham and potato. Allow to cook until the potato is soft and tender. About 15 minutes.
In a small bowl combine the milk or cream with the cornstarch. Stir together with a fork until completely combined. Add to the soup. Stir until mixed in. Allow to simmer for another 3-4 minutes. The soup will thicken.
Salt and pepper to taste. Serve warm with fresh parsley as a garnish. Enjoy