I can't believe this is an original idea - if anyone has seen a reference for it elsewhere, please pipe up.
The problem with SMS spam is not so much receiving it as its interruptive nature: you think you have a message from a friend, stop what you're doing, open it, and it's some crappy promotion you don't care about. We're (unfortunately) quite used to being pushed information that doesn't interest us, it's this masquerading as a contact that we care about which really grates.
How about this as a suggestion: have a setting on your phone which says "only alert me to messages from people in my address book". If a message from anyone else turns up it's dealt with as per normal (appearing on your phone screen and in your inbox), but your handset doesn't vibrate, beep, or otherwise get your attention.
This wouldn't get rid of the problem, but it'd be a practical step towards reducing its annoyance.