As a solo freelancer, the easiest and most consistent way to find work is to connect with design or marketing firms who are looking for reliable contractors. Many of my own clients are firms who use me as a website contractor. So over the years, I've had a good share of conversations with clients concerning their frustrations with other freelancers (usually resulting in more work for me). Interestingly enough, the most common problem these clients have with freelancers is not related to talent or skill, but rather communication. Clients have told me that they'd happily take an average freelancer who communicated well over a more talented freelancer who did not. So here are a few points to consider for any freelancer:
Answer emails quickly, even when an answer seems unnecessary. Never forget that the whole reason a client has hired you is because they don't have the time or skillset to do something themselves. In other words, they need you and if they can't get in touch with you, they feel more helpless. Even if you don't have an answer to their email or you can't complete their task for a week, at least email to let them know you got their email. This may seem unnecessary at times, but you'll be amazed at how often clients interpret the lack of email acknowledgement as freelancer laziness or apathy. Let them feel that they're being taken care of.
Stay proactive in your communication. Again, be willing to email clients even when it seems a bit redundant or unnecessary. If you've told a client that you'll start their project next week on the 11th, then when the 11th rolls around, email them again and assure them that you are now beginning the project. Often, freelancers only email when they have questions and when the project launches. Some clients are fine with this methodology, but many clients don't like the idea of placing all their faith in a freelancer's deadline promise. Don't take this as an affront to your trustworthiness -- they just want to see progress along the way. So keep the initiative on your side during a project and your clients will trust you more down the road.
Be honest and straightforward. An easy trap to fall into is trying to impress clients with your promises instead of your work. Don't give your client the absolute best-case scenario when you're discussing a project. I've seen many freelancers kill their client relationship by promising a super-fast turnaround and failing to deliver (promising a week turnaround and taking a month or more). Honestly, the client would have been fine if they were just told that it would take a month. But by promising the project in a week and failing to deliver, the freelancer has lost future trust with the client.
Spend time on being excruciatingly clear. Assumptions can cause major problems, especially in a world where so many decisions are made by email. Make liberal use of lists, inline email responses, and reiterations of instructions. Don't be ashamed to use simple language and basic lists. It's no fun to have tasks completely undone because everyone assumed someone else was doing it.
Use the phone. Not all business can be conducted by email. Some clients (especially older ones) simply prefer phone calls. Secondly, misunderstandings are always easier and faster to resolve via phone. Thirdly, voice communication creates a much more "human relationship" than email does -- and relationships are still the cornerstone of any service-based business. So always be ready to pick up the phone when necessary.
All in all, keep in mind that communication is your client's lifeline. I guarantee that if you consistently and honestly communicate with your client, you will be better than 90% of other freelancers and create a clientele that is very happy and extremely loyal.