Preheat the Oven and Prepare the Pan:
Preheat your oven to 350°F (177°C). Line a 12-cup muffin pan with cupcake liners. You may need a second pan for additional batter, as this recipe yields 18-20 cupcakes.
Make the Cupcake Batter:
In a medium bowl, whisk together the flour, baking soda, and salt. Set aside.
In a large bowl, cream together the butter and sugar until light and fluffy. Add the eggs one at a time, beating well after each addition. Stir in the vanilla extract.
Add the dry ingredients alternately with the milk and sour cream, mixing until just combined. Stir in the cocoa powder and chopped peanuts.
Fill the Cupcake Liners:
Spoon the batter into the cupcake liners, filling each about 2/3 full.
Bake the Cupcakes:
Bake for 18-22 minutes, or until a toothpick inserted into the center comes out clean. Let the cupcakes cool in the pan for 5 minutes, then transfer to a wire rack to cool completely.
Make the Peanut Butter Frosting:
In a large bowl, cream together the peanut butter and butter until smooth. Gradually add the powdered sugar, 1 cup at a time, mixing well after each addition. Add the heavy cream and vanilla extract, and beat until the frosting reaches a creamy consistency. Fold in more chopped peanuts if desired.
Frost the Cupcakes:
Once the cupcakes are completely cooled, pipe or spread the peanut butter frosting on top. Garnish each cupcake with a mini Reese’s Peanut Butter Cup.