Before I get into the details, remember that persistence is critical in this. In my last job search, I lost count how many jobs I applied to. I also had one where I was sure I got the job, and they called to tell me why I didn't get it. I got really discouraged for a couple days, and then resumed the job search. Keep at it. Remember, you only need one big hit.
Figure out what your ideal job is
Make a list of the qualities you want in a job. For me these qualities were telecommuting, ruby web development, small company. It's not necessarily important to find the ideal job, but you need to come up with a way of scoring job opportunities.
Ask friends / colleagues
The easiest way to get a new job is through a friend. So exhaust those resources first. However, when you get the interview don't assume you have the job in the bag because you've got a friend at the company. Still give it your best shot.
Use the right job sites
Figure out where the good jobs are getting posted. Personally, I was looking for a telecommute ruby job with a small company. The best sites for me were http://jobs.rubynow.com/, http://toprubyjobs.com/, and craigslist.
Sell yourself in your cover letter
I know a few developers that hate writing cover letters. This is more common in experienced developers. The more they know about programming, the more they realize they don't know, and that can lead to a situation where they have a hard time selling themselves to companies. If you have trouble with this, start making an objective list of your accomplishments. Flesh them out a bit and you've got a good start.
Tailor your cover letter for each job
I keep a standard cover letter targeting ruby web developer jobs in my email. I then edit and tailor it specifically to the job ad. This saves a lot of time, as opposed to writing a cover letter from scratch every time. Saving time means you can apply for more jobs, and get more interviews.
What to put in a cover letter
I write about how my experience has made me a good candidate for the job listing, and I link to source code and running websites that I've built. It's important to signal to the employer ASAP that you are not bullshitting, and you really can code.
Tailor your resumé
I also keep a standard detailed resume on my computer. For each job I may highlight some experience or detail certain areas more than others. Be careful here. Be sure that everything you write on there is rock solid, and that you can back it up. I spend less time on tweaking the resume and more time tweaking the cover letter.