In a Dutch oven over medium heat, melt butter. Add onions, carrots, and celery. Cook until tender.
Add garlic and cook for 1 to 2 additional minutes.
Add potatoes and enough water to cover. Bring to boil and cook until tender. Allow most of the water to evaporate.
Remove from heat and add milk, ham, cream cheese, bouillon, salt, creole seasoning, and pepper. Stir.
Sprinkle in cheese and stir gently until melted.
Serve with sliced green onions and more cheese, as desired.
Notes
For a thicker soup: When potatoes are tender, use a potato masher or immersion blender to mash about one-third of the cooked potatoes directly in the pot. The released potato starches will thicken the soup naturally.