Preheat your oven to 350°F or 177°C and grease a 2-quart baking dish, like a 9-inch square or springform pan, for easy release after baking.
In a medium bowl, whisk together flour, baking powder, baking soda, and salt; set this aside to combine with wet ingredients later. Using a mixer, beat softened butter and sugar until creamy and fluffy, about 2 minutes. Add eggs one at a time, then mix in vanilla and sour cream, scraping the bowl as needed.
Switch the mixer to a low speed, slowly incorporate the dry ingredients and milk or orange juice. Mix just until smooth and thick, avoiding overmixing to keep the cake tender.
Gently fold fresh cranberries and chopped pecans into the batter, adding texture and flavor. Spread the thick batter evenly into your prepared baking dish.
In a separate bowl, combine brown sugar, flour, and cinnamon, then cut in cold butter until crumbly. Mix in pecans and sprinkle the crumble over the cake batter.
Bake for 40-55 minutes, checking for doneness with a toothpick starting around 40 minutes. If the top browns too quickly, tent it loosely with foil.
Cool the cake on a wire rack for 10-15 minutes. Whisk together powdered sugar and milk, cream, or orange juice, then drizzle over the warm cake before slicing and serving.