Preheat oven to 350°F (175°C). Grease and flour two 9-inch round baking pans.
In a large bowl, whisk together flour, sugar, cocoa powder, baking powder, baking soda, and salt.
Add buttermilk, eggs, oil, and vanilla extract; beat on medium speed for 2 minutes.
Gradually add boiling water to the batter, beating until smooth.
Pour batter into prepared pans and bake for 30-35 minutes, or until a wooden skewer inserted into the center comes out clean.
Let cakes cool in pans for 10 minutes before inverting onto wire racks to cool completely.
Make frosting: In a large bowl, beat butter until light and fluffy. Gradually add powdered sugar and cocoa powder, alternating with milk, beating until smooth and creamy. Stir in vanilla extract.
Frost the cooled cake layers and decorate as desired.
Notes
This cake is best served at room temperature. Store leftovers in an airtight container at room temperature for up to 3 days.