Prepare the ingredients: wash, peel, and chop the potatoes, onion, and ham.
In a large pot, sauté the onion in a tablespoon of oil over medium heat until translucent, about 5 minutes. Add minced garlic and sauté for an additional 1-2 minutes.
Stir in the diced potatoes and ham, cooking for another 2-3 minutes to warm the ham and coat the potatoes in the aromatics.
Pour in the chicken broth, bringing the mixture to a boil. Reduce heat and simmer for about 20 minutes, or until potatoes are tender.
Once the potatoes are cooked, use a potato masher to lightly mash some of them for thicker consistency, leaving some intact for texture.
Stir in the heavy cream and dried thyme, then simmer for another 5 minutes. Season with salt and pepper to taste.
Serve hot, garnishing with fresh herbs if desired, and enjoy the comforting flavors of your homemade creamy ham potato soup.