Preheat oven to 350°F (175°C). Grease a 9-inch baking pan.
Beat softened butter and granulated sugar until light and fluffy.
Add eggs one at a time, then mix in vanilla and sour cream.
In a separate bowl, whisk flour, baking powder, baking soda, and salt.
Gradually fold dry ingredients into the wet mixture.
Fold in chopped rhubarb and spread batter into the pan.
For streusel, combine brown sugar, flour, cinnamon, and cold butter until crumbly. Mix in pecans if using.
Sprinkle streusel evenly over the batter.
Bake for 40-45 minutes or until a toothpick comes out clean.
Cool before serving.