Preheat oven to 350°F (175°C). Line two large baking sheets with parchment paper or silicone mats.
In a medium bowl, whisk together flour, baking powder, baking soda, and salt until evenly combined. Set aside.
In a large bowl, beat softened butter and granulated sugar with an electric mixer on medium-high speed for 2-3 minutes until light and fluffy.
Add the egg and vanilla extract to the butter mixture, beating until fully incorporated and smooth, about 1 minute.
Add half the flour mixture and mix on low speed just until combined. Add the sour cream and mix briefly, then add remaining flour mixture and mix just until no streaks remain. Do not overmix.
Scoop dough using a 2-tablespoon cookie scoop (about 1.5 ounces each) and place 2 inches apart on prepared baking sheets. Gently flatten each ball slightly with your palm.
Bake for 10-12 minutes, until edges are just barely set and centers still look slightly soft. They should not brown. Remove from oven and let cool on the pan for 5 minutes, then transfer to a wire rack to cool completely.
Make the frosting: Beat softened butter until creamy, about 1 minute. Add sifted powdered sugar and beat on low until combined, then add milk and vanilla. Increase speed to medium-high and beat for 2 minutes until smooth and glossy. Add more milk 1 teaspoon at a time if needed to reach spreadable consistency.
Once cookies are completely cool, spread about 1 tablespoon of frosting on each cookie using an offset spatula or butter knife. Add food coloring to frosting if desired, and top with sprinkles immediately before frosting sets.
Allow frosting to set for 30-60 minutes at room temperature before stacking or packaging.