But you do have some other options.
You can give out different titles, lets say someone is just starting out, and you start calling them senior developer on paper, no impact now, but for their next job they'll be able to ask for a lot more money .
The stock options etc have been mentioned, so I won't cover it.
Office space, stay away from the cubicles, and have a relaxed policy.
Workhours, instead of working 9 to 5, offer them to work 10 to 5. + have general flexibility, better to have a good programmer for 4 days, than have someone crappy for 5.
Basically use small stuff like this to make yourself appealing to a certain niche of programmers. So that they'll be much more willing to take a pay cut and work for you.