Preheat the oven to 350°F. Butter or grease an 8 or 9-inch square pan or 9-inch round cake pan. Set aside.
Make Streusel: Combine butter, sugar, flour, and cinnamon with a fork to make a crumbly topping.
For the Cake: Whisk together 2 cups of flour, baking powder, and salt in a medium bowl. In a separate bowl or stand mixer beat together the butter, sugar, eggs, and vanilla until creamy, about 3 minutes. Add the flour mixture, alternating with buttermilk, until just combined. Fold in blueberries.
Pour batter into prepared pan and sprinkle streusel topping evenly over the batter.
Bake the cake for 40 to 45 minutes or until golden brown around the edges and a cake tester comes out mostly clean. Let cool in the pan for until cooled. Serve warm or room temperature.
Best served the day it's made, but can be stored in an air-tight container at room temperature for a couple of days. To freeze, cool completely. Then double wrap and store in an airtight container for up to 3 months. Thaw overnight before serving.