In a large mixing bowl, cream or mix together the unsalted butter and sugar.
Add the egg, vanilla extract, and sour cream to the creamed mixture, mixing well.
In a separate mixing bowl, sift or whisk together the dry ingredients, including the flour, cocoa powder, baking powder, and salt.
Add the dry ingredients to the creamed mixture, mixing well.
Roll the dough out on a floured surface to about 1/2 inch thickness.
Cut the donuts with a donut cutter or cup.
Heat 1-2 inches of canola oil in a large skillet over low to medium heat.
Fry each donut in the hot canola oil, cooking one side for 2-3 minutes, then turning to cook the other side another 2-3 minutes, or 'til done.
Drain the donuts on paper that will absorb the excess grease; brown paper lunch sacks work great!
To make the glaze, mix the softened butter, vanilla extract, almond extract, powdered sugar, and milk in a small mixing bowl. The glaze needs to be a thinner consistency, so it may require a bit more milk.
While still warm but cool enough to handle, dip the donuts in the glaze, and allow them to drip dry on a wire rack.
Serve with a mug of cold milk or a nice cup of hot coffee.