Combine butter and sugars in a large mixing bowl and use an electric mixer to beat until creamy and well-combined.
Add egg yolks and vanilla extract and beat well.
Add sour cream and stir again until batter is uniform. Be sure to scrape the sides and bottom of the bowl to ensure all ingredients are well-combined.
In a separate, medium-sized mixing bowl whisk together flour, cocoa powder, baking powder and salt until well-combined.
Gradually add the dry ingredients to the wet (I do this in three parts) and use a spatula to gently stir together until ingredients are completely combined (again, scrape the sides and bottom of the bowl to ensure everything is nicely incorporated).
Cover bowl tightly with plastic wrap and refrigerate for at least one hour or up to 48 hours.
Once dough has chilled, remove from the refrigerator and turn out onto a clean, lightly floured surface. Use a rolling pin to roll to about ½” (1.3cm) thickness and use a 3” (7.5cm) donut cutter to cut out donuts (and donut holes, we fry these separately as well). Gather any dough scraps and re-roll to get as many donuts as possible from the dough.
Place donuts on a parchment paper lined baking sheet, cover loosely with plastic wrap, and return to the refrigerator while you heat your oil.
Fill a medium-sized saucepan about 2” (5cm) deep with cooking oil and fit a frying thermometer to the side (make sure it is suspended midway through the oil and not touching the bottom). Heat the oil over medium heat until it reaches 350-360F (175-185C) (this should take around 15 minutes or so, don’t heat the oil too rapidly or the donuts may not cook properly).
When oil has reached temperature, remove donuts from the refrigerator. Working with just one or two donuts at a time, carefully lower into oil (I use a frying spider) and cook for about 60-90 seconds per side. Use tongs or a frying spider to carefully remove from the oil to a paper towel lined wire rack. I recommend letting the first donut cool for several minutes and then checking the interior to make sure it is cooked properly through (should not be gooey inside nor should it be crumbly, adjust your frying time if needed). You may also use an instant read thermometer and look for an internal temperature of 185F (85C) to know the donuts are done.
Repeat with remaining donuts, being sure to allow the oil to return to the proper temperature for baking. Note that donut holes will cook much faster than whole donuts. Allow donuts to cool slightly while you prepare the glaze.
Combine powdered sugar, melted butter, 2 Tablespoons (30ml) hot water and vanilla extract in a small bowl and whisk until smooth. Check consistency, it should be thin and drizzle easily off the spoon. If it’s too thin, add more powdered sugar, if too thick add a bit more water.
Dip each donut and donut hole in the glaze then place on a wire rack to allow the glaze to become firm before enjoying.