To make the cupcakes: Preheat the oven to 350 degrees. Line a muffin pan with cupcake liners; set aside.
In a medium bowl, combine the flour, cinnamon, baking powder, and salt; set aside.
In a large bowl, or the bowl of a standing mixer, cream the butter and sugar together until light and fluffy. Add the eggs, one at a time, until just combined then stir in the vanilla and oil. Sprinkle 1/3 of the flour mixture over the butter mixture and gently stir in until barely combined. Add half of the milk, mixing until just combined. Repeat these steps with the remaining flour mixture and milk, ending with the flour. Do not over mix.
Fill each cupcake tin with 2 tablespoons of batter, or until the cupcake tin is filled half way. Bake the cupcakes for 14 to 16 minutes, or until a toothpick inserted in the center comes out with one or two crumbs clinging to it. Allow the cupcakes to cool completely before frosting.
To make the frosting: Cream the butter and cream cheese together in a large bowl. Add the sugar, one cup at a time, beating well between each addition. Stir in the cinnamon until thoroughly combined. Then stir in the vanilla. Beat the mixture well, until light and fluffy.
Pipe onto cupcakes, sprinkle with a little cinnamon sugar and top with a drizzle of Dulce De Leche if desired.