Underpromise and overdeliver. Always.
Just doing a good job isn't enough for people to reference for you. You have to be better than they expect. Client asks for two designs to choose from within two weeks? You give him three designs in one week, and tell them which one you like the best and why. That kind of stuff. Once you've secured the project, be communicative about progress and (especially) delays. This all may sound simplistic, but it would surprise you how many big shot agencies don't do these things.
Odesk/Elance? It's not working for me. I'd rather make a website for free for someone I know personally, with the intent of building a network and a portfolio, than building a website for a couple of tenners for someone on the other side of the planet.
I will warn you: in order to maintain a good volume of work you have to become good at marketing. If you do not look forward sales, and or negotiations, you might be better off working with an agency. Less money, but less hassle.
Post on the seeking freelancer thread. I posted on there for the first time this month and have received a few contacts but unfortunately took on a large job right after doing so, so I haven't been able to take advantage.
Put together a portfolio if you don't have one already.
Network. Go to local events if you can, developer meetups but also things like chamber of commerce meetings. Keep in touch with your clients. Eventually, the bulk of your work should come from your network.
I got it through this guy I worked with at a company. He was my desk neighbor, he liked my work, I told him I was looking for freelance work and he told me he could use some help.