01 -
Melt butter in a large pot over medium heat. Add chopped onion and minced garlic and cook until softened, approximately 3 minutes.
02 -
Stir in all-purpose flour and cook for 1 minute, stirring constantly to form a roux.
03 -
Gradually whisk in chicken broth and bring to a boil. Add diced potatoes and cook until tender, about 15 to 20 minutes.
04 -
Add diced ham and milk. Reduce heat and simmer for 10 minutes, stirring occasionally.
05 -
Stir shredded cheddar cheese into the soup until melted and creamy. Season with salt and black pepper to taste.
06 -
Ladle soup into bowls and serve hot. Optionally garnish with extra cheese or chopped green onions.