Preheat oven to 350°F (177°C). Line a 12-cup muffin pan with cupcake liners and set out a few extra liners for the additional batter.
In a medium bowl, whisk together flour, baking powder, baking soda, and salt. Set aside.
In a large bowl, whisk melted butter and granulated sugar until well combined. Add eggs one at a time, whisking well after each. Whisk in sour cream, milk, vanilla, and lemon zest until smooth.
Pour dry ingredients into wet and whisk or fold gently just until no streaks of flour remain. Do not overmix.
Toss fresh blueberries with 1 tablespoon flour in a small bowl, then gently fold them into the batter with a rubber spatula, being careful not to crush them.
Divide batter evenly among liners, filling each about two-thirds full. Bake for 18-20 minutes, until a toothpick comes out clean. Cool in pan 5 minutes, then transfer to a wire rack to cool completely.
Beat softened cream cheese and butter together until smooth and creamy, about 2 minutes. Gradually add powdered sugar, mixing on low then increasing to medium. Add vanilla and salt, beat until fluffy. Add heavy cream 1 tablespoon at a time if frosting is too thick.
Transfer frosting to a piping bag and pipe a swirl on top of each completely cooled cupcake. Garnish with fresh blueberries.