In a medium bowl, combine the all-purpose flour, brown sugar, cardamom, cinnamon, and salt. Add the melted butter to the flour mixture, then using a fork, (or your fingers), mix the butter into the flour mixture until it resembles coarse crumbs. Set aside until ready to use.
Preheat the oven to 350℉. Grease an 8-inch by 8-inch square baking pan (or 9-inch round baking pan) with butter or baking spray. Set aside.
In a medium bowl, sift together the cake flour, baking powder, baking soda, cardamom, and salt. Set aside.
Using a stand mixer or electric hand mixer, cream the butter and sugar on high speed until light and fluffy, about 3 minutes.
Reduce the speed to low and add the eggs, sour cream, and vanilla. Mix until combined. Add the flour in a few batches and mix on low until no flour streaks remain. Do not overmix.
Add the batter to the prepared baking pan. Distribute the streusel evenly over the top, gently pressing it into the batter. Bake at 350℉ for 45-55 minutes until a tester comes out clean and the top is lightly golden brown. Allow to cool to room temperature, then dust with powdered sugar if using.
