For private freelancers and small/medium jobs suing someone for breach of contract will probably not be a viable option.
The amount of time, effort and money that you need to sue someone and win sometimes is seample not feasible.
Yes, having a contract written by a laywer may work as a deterrent for some clients. But if they don't accept you still need to file a lawsuit.
And there is also the problem that sometimes they simple can't pay. They look and act like they have all the money in the world, but they are actually betting all they have in a website because "making a website is easy and I will make millions with my great idea".
Then even if you win they are simply going bankrupt and you will never see nor your money nor the ones that you spent on lawyers.