Preheat your oven to 350°F (175°C). Grease two 9-inch round cake pans and line the bottoms with parchment paper.
In a large mixing bowl, sift together the sugar, flour, cocoa powder, baking powder, baking soda, and salt.
In a medium bowl, whisk the eggs, milk (or sour cream), oil, and vanilla extract until fully combined.
Gradually pour the wet ingredients into the dry ingredients. Whisk by hand or on low speed until just combined.
Carefully pour in the boiling water (or hot coffee). The batter will be very thin—this is the secret to the moist choco and cake texture.
Divide the batter evenly between the two prepared pans. Bake for 30-35 minutes or until a toothpick comes out clean.
Let the cakes cool in their pans for 15 minutes before inverting them onto a wire cooling rack to cool completely.
Make the frosting: Beat softened butter for 3 minutes. Sift in cocoa powder and salt, then mix on low.
Gradually add powdered sugar alternating with heavy cream. Add vanilla and whip on medium-high for 2 minutes.
Place one cake layer on a stand, frost the top, then place the second layer and cover the entire cake with buttercream.