Preheat oven to 350F. Butter the insides of two 9” round cake pans, & line the bottoms with parchment. In the bowl of a standing mixer with the paddle attachment, cream the butter and sugar until light. On medium-low speed, beat in the peanut butter and vanilla until smooth. Add the eggs, one at a time, beating until smooth after each egg.
In a separate bowl, whisk together the dry ingredients until well blended. Add to creamed mixture alternately with warm milk, scraping the bottom of the mixer bowl frequently. Beat until thoroughly blended.
Pour into prepared pans and smooth the top if necessary. Bake 25-30 minutes, until top of cake springs back lightly when gently pressed. Cool in pans 5 minutes before turning out onto wire racks to cool completely.
Once cool, make the frosting: In a large bowl or in an electric mixer, beat together the peanut butter and butter until smooth. Stir in the sugar one cup at a time, adding the vanilla and salt as you go. Add milk as needed to make a spreadable consistency.
Place 1 cake layer onto a serving plate and spread with some of the frosting. Place the other layer on top and spread the top and sides with remaining frosting to cover the cake completely. Garnish top of cake with chopped peanuts if desired.