Set the oven to 350°F and coat an 8-by-8-inch pan with cooking spray. The prepared pan should have an even, light coating so the cake releases cleanly after cooling.
Whisk the flour, baking powder, baking soda, and salt in a medium bowl. Breaking up any leavener lumps now helps the cake rise evenly.
Beat the softened butter and sugar with an electric mixer on medium speed for 1 to 2 minutes. The mixture should look creamy and lighter in color, with no large butter pieces remaining.
Add the eggs one at a time, beating after each addition, then mix in the vanilla. The batter should look smooth and cohesive before the dry ingredients go in.
Mix in half of the flour mixture, then add the sour cream. The batter will become thick and creamy as the sour cream blends through it.
Add the remaining flour mixture and mix only until it disappears into the batter. Stop promptly to keep the finished cake tender rather than tight or dry.
Fold in the lemon or orange zest and the fruit of choice. The fruit should stay evenly distributed without being crushed into the batter.
Spread the thick batter into the prepared pan and scatter the topping evenly over it. Press only the largest crumb clusters lightly into the surface so they stay in place.
Bake for 45 to 55 minutes, then cool the cake in the pan. The edges should be golden brown, the topping firm, and a toothpick from the center should come out clean.