Preheat your oven to 350°F (175°C) and line two baking sheets with parchment paper.
In a medium bowl, whisk together 2 1/4 cups flour, 1/2 tsp baking soda, 1/2 tsp baking powder, 1/2 tsp salt, and 1 tsp cinnamon. Set aside.
In a large mixing bowl, cream together 3/4 cup softened butter, 3/4 cup brown sugar, and 1/4 cup granulated sugar until light and fluffy, about 3-4 minutes.
Add 2 tsp vanilla extract and 1/3 cup sour cream (or vegan yogurt) to the butter mixture, mixing until combined.
Gradually add the dry ingredients to the wet ingredients, mixing just until no flour streaks remain. Be careful not to overmix.
In a separate bowl, prepare the streusel topping by mixing together 1/2 cup flour, 1/4 cup brown sugar, and 1/2 tsp cinnamon. Cut in 1/4 cup cold butter until the mixture resembles coarse crumbs.
Scoop 2-tablespoon portions of the cookie dough onto the prepared baking sheets, spacing them about 2 inches apart.
Press a small well in the center of each cookie with your thumb and sprinkle about 1 tablespoon of streusel topping over each well.
Bake in the preheated oven for 12-15 minutes, or until the edges are lightly golden. The centers may look slightly underbaked, which is fine.
Allow the cookies to cool on the baking sheets for 5 minutes, then transfer to a wire rack to cool completely.
While the cookies are cooling, prepare the glaze by whisking together 1/2 cup powdered sugar, 1-2 tbsp milk, and 1/4 tsp vanilla extract until smooth.
Once the cookies have cooled, drizzle the glaze over the top and let it set before serving.