I like these guidelines.
For salary, my rule is "does the offered salary meet local norms for the position and the company's situation, and does it show respect for me and for the role I will be playing?" I wouldn't be applying for the job if "norms" for the job would not meet my needs (and, as another replier points out, leave more than a little after expenses to plan for the future).
Also, I look hard at the working conditions and environment. I don't really start talking about this stuff until after an offer, but I'm watching for signs throughout the process:
* Are the hours humane? Overworking programmers is a sign of disrespect for the role.
* Is it friendly to women? An engineering team with no women is a huge red flag of bad management and culture, for teams of more than about 5 people. For smaller teams, is there a sense that hiring women is important?
* Does the company try to dominate the employee's non-working life? Regular "happy hours", catered dinner at night (RED FLAG), bar/keggerator in the office... all bad signs to me
* Is there flexibility about when and where the work gets done, or is it ass-in-a-seat-9-to-7?
* Do people stick around? Has my manager pulled in people he/she has worked with in the past (big plus)?