In a large pot over medium heat, melt the butter.
Add the diced onion and cook for 3–4 minutes until softened.
Stir in the minced garlic and cook for another 30 seconds until fragrant.
Pour in the broth and add the diced potatoes.
Bring to a boil, then reduce heat and simmer for 15 minutes or until potatoes are fork-tender.
Mash some of the potatoes in the pot using a potato masher for a thicker texture, or blend half the soup with an immersion blender.
Add the chopped broccoli and cook for 5–7 minutes until bright green and tender.
Reduce the heat to low and slowly stir in the milk.
Add the shredded cheddar cheese a handful at a time, stirring constantly until fully melted.
Season with salt, pepper, smoked paprika, and mustard powder if using.
Taste and adjust seasoning as needed.
If the soup is too thick, add more broth or milk to reach desired consistency.
Serve hot with crusty bread, extra shredded cheese, or your favorite toppings.
Store leftovers in an airtight container in the refrigerator for up to four days.
Reheat on the stove over low heat, stirring occasionally, and add a splash of milk or broth if needed.