Preheat the oven to 350°F (175°C). Grease and flour a 10x15-inch jelly roll pan.
In a mixing bowl, combine flour, sugar, baking soda, and salt.
Beat in the sour cream and eggs until smooth.
In a saucepan over low heat, melt the butter. Stir in the water and cocoa powder. Bring to a boil, then remove from heat.
Allow the cocoa mixture to cool slightly, then blend it into the flour and egg mixture. Pour the batter into the prepared pan.
Bake in the preheated oven for about 20 minutes, or until a toothpick inserted into the center comes out clean.
While the cake is baking, prepare the icing. In a large saucepan over medium heat, combine milk, cocoa powder, and butter. Bring to a boil, then remove from heat. Stir in confectioners' sugar and vanilla extract until smooth. Fold in walnuts if using.
Spread the icing over the warm cake. Allow to cool before serving.