Create an account at http://www.ureach.com/. Costs less than $10 month to obtain a private toll-free number. Give this number to every business you contact. Use the website to forward your calls to home phone, cell phone, whatever you want.
I haven't had a telemarketing call in years -- except the kind where they're just dialing random numbers, and I tell them it's a modem line that I happened to see blinking. In those cases they don't even have your name. Yes, everyone that calls me costs me in minutes, but it's worth it. I think the software would even let me refuse calls from a certain number, now that I think about it.