Preheat oven to 350 degrees.
Butter two 9" round cake pans, and dust with extra flour, tapping out excess.
Sift flour, sugar, cocoa, baking soda, baking powder, and salt into the bowl of a mixer. Beat on low-speed until just combined. Increase speed to medium, and add eggs, buttermilk, oil, and vanilla. Beat until smooth, approximately 3 minutes. Turn mixer off and carefully add boiling water. Beat on high for approximately 1 minute until well-combined.
Divide batter evenly between the two pans. Bake for 35 minutes, or until a toothpick inserted in the center of each pan comes out clean. Cool for 15 minutes of a cooling rack, turn cakes out onto the rack and allow to cool completely before frosting and assembling.
To make the frosting, combine peanut butter, sugar, butter, vanilla, and salt in the bowl of a stand mixer fitted with the paddle attachment. Beat until the frosting is light and fluffy, approximately 2 to 3 minutes.
Frost the top of one cake and stack the other cake on top to form two layers. Add a final layer of frosting to the outside and decorate with miniature peanut butter cups if desired.