Preheat the oven to 350 degrees. For the cake, combine the butter, water and cocoa in a saucepan and bring to a boil. Remove from the heat.
In a mixing bowl, mix together the flour, sugar, baking soda and salt.
Add the butter mixture all at once, and stir to blend. Whisk the eggs and sour cream together, add to the batter and mix well. Pour into an 18x12x1 inch pan and bake for 20 minutes.
Just before the cake is done, make the icing. Combine the butter, milk and cocoa in a large, heavy saucepan and bring to a boil. Add the confections sugar and mix well. Ice the cake while it is still warm and top with nuts if desired.