Prepare the Dough:
In a large mixing bowl, sift together the flour, sugar, baking powder, salt, and ground cinnamon (if using).
In another bowl, whisk together the eggs, milk, melted butter, and vanilla extract until well combined.
Pour the wet ingredients into the dry ingredients and mix until a soft dough forms. Be careful not to overmix.
Shape the Donuts:
On a lightly floured surface, roll out the dough to about ½ inch thickness.
Use a donut cutter or two differently sized round cookie cutters to cut out donut shapes from the dough. Alternatively, you can use a knife to cut out donut shapes.
Transfer the donuts to a baking sheet lined with parchment paper. Save the donut holes if desired.
Fry the Donuts:
In a large, deep skillet or Dutch oven, heat about 2 inches of vegetable oil over medium heat until it reaches 350°F (175°C).
Carefully place the donuts in the hot oil, a few at a time, making sure not to overcrowd the pan.
Fry the donuts for 1-2 minutes on each side, or until they are golden brown and cooked through.
Use a slotted spoon to transfer the fried donuts to a wire rack lined with paper towels to drain excess oil.
Prepare the Glaze:
In a medium bowl, whisk together the powdered sugar, milk, and vanilla extract until smooth.
If desired, you can add food coloring or flavorings to the glaze for extra variety.
Glaze the Donuts:
While the donuts are still warm, dip each one into the glaze, coating it completely.
Allow any excess glaze to drip off, then return the glazed donuts to the wire rack to set.
Serve and Enjoy:
Serve the homemade donuts warm or at room temperature.
Enjoy them plain or with your favorite toppings, such as sprinkles, chopped nuts, or shredded coconut.
Store any leftover donuts in an airtight container at room temperature for up to 2 days. Warm them briefly in the microwave before serving, if desired.