Is it horribly unprofessional to take down a client's site if you have not received payment for it after several months and have not received any responses to your inquiries?
A few years ago, after getting screwed out of about $2000 by a client who got their site then changed the FTP password and stopped emailing me, I started putting a little insurance policy in every site I built. I wrote a little javascript that checks my server for a bit of data, and if I set that "killbit" on my server, the script would display a nicely designed pop up message over the client's site which basically says "the client didn't pay, but look how great the site looks, it was designed by me". I never had to use it, but always secretly wanted to. The best part is that it would be easily circumvented by any old programmer the client hired to get rid of it, but as soon as that new programmer saw what they were getting rid of, they'd probably drop the client themselves, or at least raise the price and demand payment up front.
That's tough. So you made their site live without final payment? To combat that in the future, I wouldn't turn it over to them to to put on their servers until final payment, but it sounds like that ship has sailed.
The Developer reserves the right to remove all web content from the Internet if payment is not made within thirty (30) days after delivery of our completion notification.
Unlike me, you're perfectly within your rights to take down the site, as that's explicitly specified in your contract. If you've given them ample warnings, it's fair for you to do it; and it's not like you're destroying anything -- you can restore it with a click or two once you receive payment.