Preheat your oven to 350°F (175°C). Grease a 9x13 inch baking pan with butter or nonstick spray, then optionally line with parchment paper leaving some overhang on the sides for easy removal.
Whisk together flour, brown sugar, cinnamon, and salt in a medium bowl, then cut in the cold cubed butter using a pastry cutter or fork until the mixture resembles coarse, clumpy crumbs with pea-sized pieces. Refrigerate the streusel until ready to use.
In a large bowl, whisk together the flour, baking powder, baking soda, salt, cinnamon, nutmeg, ginger, and cloves until fully combined and the spices are evenly distributed.
In a separate large bowl, whisk together the pumpkin puree, granulated sugar, brown sugar, vegetable oil, eggs, vanilla extract, and sour cream until smooth and well combined.
Pour the wet ingredients into the dry ingredients and fold together with a rubber spatula until just combined and no streaks of flour remain — do not overmix.
Pour the batter into the prepared pan and spread into an even layer using a rubber spatula, then tap the pan gently on the counter a few times to release any air bubbles.
Remove the streusel from the refrigerator and scatter it evenly over the entire surface of the batter, pressing down very gently just enough to help it adhere.
Bake on the center rack for 40 to 50 minutes, until the streusel is deep golden brown and a toothpick inserted in the center comes out clean or with just a few moist crumbs. If the streusel darkens too quickly, tent loosely with foil.
Transfer the pan to a wire cooling rack and let the cake cool for at least 20 to 30 minutes before slicing to allow the crumb to set.
Whisk together sifted powdered sugar, vanilla extract, and 2 tablespoons of milk until smooth, adding more milk a teaspoon at a time until drizzleable, then drizzle over the cooled cake before slicing.