Preheat oven to 350°F (175°C). Grease and line a 9x13-inch metal baking pan with parchment paper.
Make the streusel: In a small bowl, combine flour, brown sugar, and cinnamon. Cut cold butter cubes into sugar mix with a pastry blender or your fingertips. Cover loosely and store in refrigerator until ready to use.
For the cake, whisk together flour, baking powder, baking soda, and salt in a medium bowl. In a large bowl, beat butter and sugar until light and fluffy, about 2-3 minutes. Add eggs one at a time until there are no streaks but no further. Then mix in vanilla and lemon zest just until combined. Switch to a spoon or spatula and stir in sour cream. Alternate gently adding dry ingredients and milk, beginning and ending with dry, until just combined, about 10-15 strokes per round.
Drop half the batter into the prepared pan in spoonfuls to help distribute it with less fuss. Level gently with a spatula, making sure to spread all the way to the edges of the pan. Scatter half the blueberries. Press gently into batter. Add the remaining batter in spoonfuls, smooth gently, then top with remaining blueberries and press into batter. Sprinkle streusel evenly over the top. Bake for 45–50 minutes, or until a toothpick inserted into the center comes out clean. Cool in the pan.
For the glaze, whisk powdered sugar, lemon juice, and zest until smooth. Drizzle over cooled cake. Optionally, sprinkle poppy seeds or almonds over glaze before it sets. Slice and serve.