Heat the oven to 375°F. Grease or spray with non-stick cooking spray an 8″x”8 baking pan.
Sift the flour, sugar, cocoa powder, baking powder, and salt through a fine-meshed strainer into a mixing bowl. Combine the milk, melted butter, and vanilla. Pour the liquids over the dry ingredients, and stir gently with a spatula just until no more dry flour is visible. Scrape this batter into the pan and smooth the top.
For the pudding layer, combine the white sugar, brown sugar, and cocoa powder in a small bowl. Pour over the cake batter and shake the pan to evenly distribute the sugars.
Pour the cold water over the sugars. Do not stir. Put the pan immediately into the oven and bake for 40 to 45 minutes. As it bakes, the cake will rise to the top while the pudding forms beneath. The cake is finished baking when the edges of the cake turn dark brown and crispy, and when the top of the cake is shiny and dry to the touch.
Let the cake cool for at least 15 minutes before serving. Scoop slices of cake and the pudding beneath into individual bowls and top with ice cream. Leftovers will keep refrigerated for up to a week and can be reheated for 20 seconds in the microwave.