Preheat oven to 350°F (175°C). Grease a 9x5 inch loaf pan and line with parchment paper, leaving an overhang on the long sides.
In a medium bowl, whisk together flour, baking powder, baking soda, salt, and ground cinnamon until evenly combined.
In a large bowl, beat softened butter, granulated sugar, and brown sugar with a mixer on medium speed for 2-3 minutes until light and fluffy.
Add eggs one at a time, beating well after each addition. Mix in vanilla extract and sour cream until smooth.
Add dry ingredients to wet in two additions, mixing on low just until flour disappears. Do not overmix.
Gently fold in diced peaches and chopped pecans with a rubber spatula until evenly distributed.
In a small bowl, combine flour, brown sugar, and cinnamon. Cut in cold butter with a pastry cutter until coarse crumbs form.
Pour batter into prepared pan and spread evenly. Sprinkle streusel topping over the batter. Bake for 55-60 minutes until a toothpick comes out clean.
Cool in pan for 15 minutes, then use parchment to lift bread onto a wire rack to cool completely, about 1 hour.
Whisk powdered sugar, vanilla, and 2 tablespoons milk until smooth. Add more milk a teaspoon at a time for desired consistency. Drizzle over cooled bread and let set for 10 minutes before slicing.