Preheat oven to 375°. Grease a 15x10x1-in. baking pan.
In a large bowl, whisk the first five ingredients. In a small saucepan, combine butter and water; bring just to a boil. Stir into flour mixture. In a small bowl, whisk eggs, sour cream and extract until blended; add to flour mixture, whisking constantly.
Transfer to prepared pan. Bake until golden brown and a toothpick inserted in center comes out clean, 18-22 minutes. Cool on a wire rack 20 minutes.
For frosting, combine butter and milk in a large saucepan; bring just to a boil. Remove from heat; gradually stir in confectioners’ sugar and extract. Stir in walnuts. Spread over warm cake.
Use an electric mixer to mix both butter and cream cheese until creamy. Gradually add sugar and beat for 5 minutes, then add eggs one at a time, allowing each to incorporate before adding more. Stir in vanilla.
Sift flour and salt and add gradually to the mixer, beating until well blended. Pour batter into a well greased and floured bundt pan or tube cake pan.
Place 2 cups water in an ovenproof container on the rack in the oven next to the cake. Bake cake at 300 for an hour and 45 minutes, or until a toothpick can be removed cleanly.
Place pan on a wire rack and cool for 15 minutes, then remove the cake from the pan and complete cooling on the wire rack.