The Cyanogen mod version of Android 2.3.7 allows you to go:
Contacts > Call log > [long press on unwanted caller] > Add to Blacklist
I *think* there's something similar on regular Android 2.3, but you select the contact, hit Menu, select "More", then "Add to Blacklist"
But for the blacklist to actually work, you may have to do: Settings > Call > Call rejection > Auto reject mode > “Only black list”
For junk sms, I gave up trying. SMS apps have blacklists but still some of the blocked numbers send through. You can (and I did) change the notification sound associated with specific numbers. (When I get a junk sms, my phone says "booooo!")
/guessing