In a saucepan over medium heat, melt butter. Add onions and cook until they begin to brown and turn translucent, about 4 minutes. Add garlic and cook an additional 30 seconds. Add flour and stir to create a paste. Cook for 1 minute.
Add chicken broth, milk, salt, paprika, and pepper, whisking to incorporate. Add hash browns and stir. Bring to a boil, cover, and reduce heat to low. Simmer for 7 minutes (6 minutes if potatoes are thawed).
Remove lid and add broccoli florets. Stir to combine, then cover and cook an additional 2-3 minutes, or until potatoes can easily be pierced through with a fork. Remove from heat and serve.
Optionally, top with shredded cheese, crumbled bacon, sour cream, or chives.
Serve with crusty bread, grilled cheese, or with a side salad.
If you'd like to add cheese to your soup, add 1-2 cups of shredded sharp cheddar cheese just before serving, stirring until melted. Grating your own cheese will result in a smoother soup - store bought shredded cheese can cause your soup to be grainy.
Large broccoli florets should be halved or quartered into smaller pieces. You're looking for small, bite-size pieces that will fit onto a spoon.