There's no rule as to who buys the boutonniere and who pays for the corsage for prom. In these modern times, prom dates may not fit conventions of the past.
When it comes to traditional prom etiquette, each date pays for the piece the other will be wearing. While the girl may buy the boutonniere and the boy may pick up the tab for the corsage, couples frequently pick out their flowers together. When the night of the prom arrives, the boy traditionally presents the girl with the corsage and places it on her wrist or dress, and the girl pins the boutonniere on the boy's lapel.