Preheat oven to 375 degrees. Line 12 large muffin cups with liners and spray with cooking spray.
In a large bowl, stir together flour, poppy seeds, baking soda, baking powder, and salt. Set aside.
Using an electric mixer, beat together the butter and sugar on high speed until light and fluffy. Add eggs one at a time, stopping to scrape down the sides of the bowl.
In a small bowl or glass measuring cup, combine buttermilk, lemon zest and juice, and vanilla. Add liquid ingredients to mixing bowl, alternating with flour mixture. Stir just until flour is incorporated, being careful not to overmix.
Scoop the batter into the muffin cups, filling just below the top of the liner. Bake for 20 to 25 minutes, or until tops spring back when touched. Cool muffins completely before frosting.
For frosting, using an electric mixer on high speed, cream together the sugar and cream cheese until well mixed and fluffy. Beat in the vanilla extract, lemon zest, and enough lemon juice to make the frosting a spreadable consistency.
Spread frosting on muffins.