Here's what I used last time:
https://gist.github.com/malarkey/4031110
I like the plain language of it. For me, contracts are a necessity. The way I see it is that people who want to not pay, won't pay. You'd need an army of lawyers to craft a bulletproof general purpose contract. Instead, I go by a mutual understanding sealed by a simple contract.
From what I understand, the best tool/weapon you have is a clause that says that copyright assignment from you to them happens upon receipt of full payment. That way you hold their work until you get paid. YMMV and IANAL.