With iOS 5 on your phone, you can drag your finger across a song's listing and tap the red delete button to delete it from your phone. Then, delete it from iTunes on your computer before your next sync.
It will still show up in your iTunes past purchases list, but you can hide it from view.
iTunes Store: Hiding and unhiding purchases, http://support.apple.com/kb/HT4919
Quick question because I am having the same problem however if I hit delete a Cloud appears next to it on my phone and it stays in the available downlowds when I sync. I too have Christmas Music that I want to delete however when the Cloud items show up on my phone when I am traveling since there is no way to get internet on the road the phone just continues to play nothing. I have had to downlowd every single song onto the phone to prevent it from doing nothing and then skip over everything while I am traveling.