Preheat your oven to 350°F (175°C). Line a cupcake pan with paper liners to make removal easy.
In a medium bowl, whisk together the all-purpose flour, baking powder, salt, and ground cinnamon. Set this dry mixture aside.
In a large mixing bowl, use an electric mixer to cream the softened butter and granulated sugar until the mixture is light and fluffy, about 3-4 minutes.
Add the eggs one at a time, mixing well after each addition. Then, add the vanilla extract and mix until combined.
Gradually add the dry ingredients to the wet mixture, alternating with the milk. Start and end with the flour mixture, mixing just until combined.
Scoop the batter into the prepared cupcake liners, filling each about two-thirds full. Bake for 18-20 minutes, or until a toothpick inserted into the center comes out clean.
While the cupcakes are baking, combine the melted butter, granulated sugar, and ground cinnamon in a small bowl. Set aside.
Once the cupcakes are done baking, remove them from the oven and let them cool in the pan for 5 minutes. Then, transfer them to a cooling rack. While they are still warm, brush the tops with the melted butter and dip them into the cinnamon sugar mixture.
In a mixing bowl, beat the softened cream cheese and remaining butter until smooth. Add the vanilla extract, ground cinnamon, and a pinch of salt, mixing until incorporated. Gradually add the confectioners' sugar, adjusting the amount to achieve your desired frosting consistency.
Once the cupcakes are completely cool, use a piping bag to frost each cupcake with the cream cheese frosting.
For an extra special touch, drizzle some caramel sauce over the top of the frosted cupcakes.