In a large Dutch oven, melt butter over medium heat. Add hash browns, onion, and garlic; cook for 5 to 6 minutes, stirring frequently.
Once the hash browns are tender, add the flour; cook for 2 minutes and stir constantly.
Stir in chicken broth and milk; cook for 5 to 6 minutes, or until slightly thickened. Add broccoli, ham, salt and pepper; cook for 10 minutes, stirring frequently.
Add sour cream and cheese, stirring until cheese is melted and soup is heated through.