Preheat your oven to 350°F (175°C).
Grease and flour a 10-inch tube or bundt pan.
In a large bowl, cream together the butter and sugar until light and fluffy. Beat in the eggs one at a time, then stir in the vanilla extract.
In a separate bowl, whisk together the flour, baking powder, and salt. Gradually add this dry mixture to the creamed mixture, alternating with the sour cream.
Gently fold in the cranberries and nuts (if using).
Pour the batter into the prepared pan and spread it out evenly.
Bake for 60-70 minutes, or until a toothpick inserted into the center comes out clean.
Allow the cake to cool in the pan for 10 minutes before removing to a wire rack to cool completely.