Well, there are two ways to block annoying repeat callers. (1) Contact your phone provider about "call blocking" or "selective call rejection" or whatever they call it. Some providers have this as a free service and allow you to block 30 or more numbers. (2) Buy a phone (or an add-on box for your home phone) with this built-in. Most of these allow 100 or more numbers to be blocked.
I reserve blocking for the most annoying/persistent callers (those that call multiple times per day, for example) or for ones that are reported as scammers (your computer has a virus, let me log in and "fix" it for you; I'm from the IRS and will arrest you if you don't wire us money immediately; or similar BS). For others, I simply don't answer the phone unless it's someone that *I* want to talk to. So all 800-number and out-of-state calls just go voicemail. If it's important, they WILL leave a message; if it's not important enough to leave a message, it's not important enough for me to answer. There's no law that you HAVE to answer your phone.