1. To make the cupcakes: preheat the oven to 350 degrees F. Line a 12-cup muffin tin with paper liners. Set aside.
2. Place butter, chocolate and cocoa powder in a medium heatproof bowl. Microwave in 30 second spurts on 50% power, stirring in between, until the butter and chocolate are melted and the mixture is smooth. (Alternatively, you could do this step in a double boiler.) Set the mixture aside to cool until it is warm to the touch.
3. In a small bowl, whisk together the flour, baking soda, and baking powder. Whisk the eggs in a medium bowl to combine, then add the sugar, vanilla and salt and continue whisking until fully incorporated. Add the cooled chocolate mixture to the bowl and whisk to combine. Sift one-third of the flour mixture into the bowl and whisk gently to combine. Add the Greek yogurt or sour cream and whisk to combine. Finally, sift the the rest of the flour mixture into the bowl and whisk until everything is well combined. The cupcake batter will be thick.
4. Place a spoonful of cupcake batter on the bottom of each cupcake liner. Place a Reese's Peanut Butter Cup on top of the batter. Cover the peanut butter cups with remaining batter, filling each about 2/3 full. Bake until a toothpick inserted into the center of the cupcakes comes out clean, about 18-20 minutes. Remove the pan to a wire rack and let the cupcakes cool for a few minutes before removing them to a wire rack to cool completely.
5. While the cupcakes are cooling, make the peanut butter buttercream frosting. In the bowl of a stand mixer, beat butter and peanut butter until creamy. On low speed, add in powdered sugar. Mix until combined and add the heavy cream. Mix until frosting is fluffy. You can play around with the amounts of powdered sugar and heavy cream to get the exact texture and consistency that you want.
6. Frost cooled cupcakes with the peanut butter frosting and top each cupcake with a mini peanut butter cup, if desired.