Preheat oven to 450ºF and line a baking sheet with parchment paper.
Melt butter in a large pot over medium heat. Add onion and cook until soft, about 6 minutes. Add garlic and cook a minute more.
Whisk in flour and cook, stirring constantly for a minute, then whisk in the milk and salt and bring to a simmer. Add broccoli, cover, and cook until broccoli is tender. Blend with an immersion blender or carefully transfer to standing blender (work in a few batches unless you have a Vitamix or something similar with steam vents). Blend on high speed until smooth.
While soup is cooking, make roasted broccoli. Toss broccoli with olive oil, salt, and smoked paprika. Roast for about 10 minutes, flipping once, or until broccoli is charring in bits and is tender.
Serve soup bowls topped with a dollop of sour cream or yogurt, a few pieces of roasted broccoli, and a sprinkling of smoked paprika, if desired.