Preheat oven to 425°F (218°C). Line a muffin tin with paper liners or grease with nonstick spray.
Prepare the streusel topping (if using): Mix brown sugar, cinnamon, and nuts in a small bowl. Set aside.
In a large bowl, whisk together flour, baking soda, baking powder, and salt.
In a separate bowl, beat butter, granulated sugar, and brown sugar together until light and fluffy (about 3 minutes).
Beat in eggs one at a time, then mix in sour cream and vanilla extract.
Gradually mix in the dry ingredients, alternating with the milk, until just combined.
Gently fold in the blueberries. (Tip: Toss blueberries with 1 tbsp of flour to prevent them from sinking.)
Fill the muffin cups to the top with batter. Sprinkle with streusel topping if using.
Bake at 425°F for 5 minutes, then reduce heat to 350°F (177°C) and bake for another 18-20 minutes until golden brown.
Let muffins cool in the pan for 5 minutes before transferring to a wire rack.
Serve warm or store in an airtight container for up to 3 days. Muffins can also be frozen for up to 3 months.