Play up every positive thing about your company. Training, working conditions, pay, benefits, short pay review periods, cool, well-qualified people who work there, stock option upsides, etc. Remember that a major motivating factor for programmers is the chance to learn and work with a new technology. Try to determine what turns the candidate on and try to sell them on your ability to involve them in such projects. In these times of dotcom spending pull-backs you need to sell recruits on the company's business model and funding situation.
Nobody wants to be part of a failure.
Decide up front that your recruiting effort is going to take up a bunch of every manager's time. It takes lots of time to do it right. Recruiting in one of the prime dotcom cities like San Francisco probably seems tough but imagine what it was like when I headed up the Internet department at Gateway 2000. This is where I first learned how hard recruiting could be. So the message is that there are plenty of good candidates out there - you just have to work harder and more creatively than the next guy to get them.