Preheat the oven: to 350°F (175°C). Grease and flour an 8×8 inch baking pan.
Make the streusel topping: In a medium bowl, combine the flour, brown sugar, and cinnamon. Cut in the cold butter using a pastry cutter or two forks until the mixture resembles coarse crumbs. Set aside.
Prepare the cake batter:
In a medium bowl, whisk together the flour, baking powder, baking soda, salt, cinnamon, nutmeg, ginger, and cloves.
In a large bowl, beat the butter, granulated sugar, and brown sugar together until light and fluffy.
Add the eggs, one at a time, beating well after each addition. Mix in the pumpkin puree and vanilla extract.
Gradually add the dry ingredients to the wet ingredients, mixing just until combined.
Assemble the cake:
Pour the batter into the prepared baking pan and spread it evenly.
Sprinkle the streusel topping evenly over the batter.
Bake: for 35-40 minutes, or until a toothpick inserted into the center of the cake comes out clean.
Prepare the glaze: In a small bowl, whisk together the powdered sugar, milk, and vanilla extract until smooth. Adjust the consistency with more milk or powdered sugar if needed.
Serve: Once the cake has cooled, drizzle the glaze over the top. Cut into squares and enjoy!