Pre-heat the oven to 350°.
Grease 2 round cake pans.
In a large mixing bowl, mix together the dry ingredients, including the sugar, sifted flour, salt, and cocoa powder.
In a small saucepan, bring 2 sticks of unsalted butter and the water to a boil.
Remove the butter mixture from the heat and mix together with the dry ingredients.
Dissolve the baking soda in buttermilk or sour milk. (You can make sour milk by combining milk with 1 tablespoon vinegar.)
Beat the eggs into your milk mixture.
Add the milk mixture and vanilla extract to all the other ingredients in the mixing bowl; mix well for 1-2 minutes, scraping the sides of the bowl as needed.
Pour the batter into your prepared cake pans. Bake at 350° for about 30 minutes or until a toothpick inserted in the center of the cakes comes out clean.
Let the cakes cool in the pans for about 10 minutes before removal to a wire rack to fully cool.
Meanwhile, mix together the ingredients for a peanut butter cream cheese frosting. Start by mixing together the cream cheese, softened salted butter, vanilla extract, peanut butter, and milk.
Add the powdered sugar to the frosting mixture, and mix until smooth and creamy.
Once the cakes have fully cooled, layer and frost to your desired thickness.
Tip: I do like to refrigerate this cake once it's made, mainly because of the cream cheese frosting. When you do go to serve it up, try cutting a slice and warming it up in the microwave for about 15 seconds. Mmmm, just like it's fresh out of the oven.