Preheat oven to 350 degrees F. Grease and flour two 9-inch layer cake pans. Wash and drain the cranberries if they are fresh. If frozen, don't thaw, just bring them out of the freezer while you are preparing the batter.
Whisk together the flour, baking soda, baking powder, cinnamon, salt, ginger, pepper, cloves, nutmeg, and allspice. Set aside.
In the bowl of an electric mixer, beat the butter until creamy, about 2 minutes. Add sugar and beat on medium speed until light a fluffy. Add eggs, one at a time, waiting about 30-45 seconds in between each one. Add pumpkin puree and vanilla and mix until incorporated. Turn mixture down to low speed and slowly add the dry ingredients, beating only until smooth. Fold in walnuts and cranberries. Turn into pans.
If using crumb topping (I did not) add it now, before putting cakes in the oven. (recipe below)
Bake for 60-70 minutes or until a cake tester inserted in the middle comes out clean.
Cool in pan(s) for 15 minutes, then turn out onto rack, careful, cakes are heavy!
When cool, drizzle with icing if you didn't use crumb topping.
Icing
In a bowl, mix sugar and milk with a small spoon until desired consistency is reached. Add drops of milk to thin if needed. Drizzle over cakes and (if desired) sprinkle with chopped nuts.