Preheat oven to 350 degrees.
Grease and flour 2 8-inch round pans or a 9 x 13 pan.
Sift flour, sugar and salt together into a large bowl.
Use a saucepan to cook butter, water and cocoa. Bring mixture to a boil. Turn off the heat.
In a different bowl, mix the eggs, baking soda, cinnamon, vanilla and sour milk together.
Pour the cooked ingredients over the flour mixture; stir until combined..
Add the flour mixture to the egg mixture. Stir again.
Pour batter into prepared pans, Bake 20 to 30 minutes. Check to make sure that cakes are done.
Mix all of the topping ingredients together. Add topping to the cake once it is cold.