Make the Cupcakes: Adjust oven rack to lower-middle position and preheat to 350 degrees F. (If you are using a non-stick muffin pan, heat the oven to 325 degrees F.) Line standard-size muffin pan with baking cup liners.
Combine butter, chocolate, and cocoa in medium heatproof bowl. Set bowl over saucepan containing barely simmering water; heat mixture until butter and chocolate are melted and whisk until smooth and combined. (Alternately, you can microwave the mixture at 50% power, stirring every 30 seconds until completely melted.) Set aside to cool until just warm to the touch.
In a small bowl, whisk together the flour, baking soda, and baking powder.
In a medium bowl, whisk the eggs combine; add sugar, vanilla, and salt and whisk until fully incorporated. Add cooled chocolate mixture and whisk until combined. Sift one-third of flour mixture over chocolate mixture and whisk until combined; whisk in sour cream until combined, then sift remaining flour mixture over and whisk until batter is homogeneous and thick.
Divide the batter evenly among muffin pan cups. Bake until skewer inserted into center of cupcakes comes out clean, 18 to 20 minutes.
Cool cupcakes in muffin pan on wire rack for 15 minutes. Remove the cupcakes and set on wire rack to cool to room temperature before icing, about 30 minutes.
Make the Peanut Butter Frosting: Place the powdered sugar, peanut butter, butter, vanilla and salt in the bowl of an electric mixer fitted with a paddle attachment. Mix on medium-low speed until creamy, scraping down the bowl with a rubber spatula as you work. Add the cream and beat on high speed until the mixture is light and smooth.
Assemble the Cupcakes: Frost the cupcakes with an offset spatula, or with a decorating tip (I used a Wilton 1M tip). Store at room temperature in an airtight container for up to 4 days.