While I think Ryangripp is on the right track I'd also add that you should look at what type of technology is being used at each place and how it will help you move forward in your career. Look for companies that aren't just going to pay you more but will help you grow as a programmer.
Example. Shop A and Shop B are both working on software type X. But Shop A is stuck in the stone age of VB 6 while Shop B is moving everything to C# and starting up a mobile group. Even if Shop A offers you more Vacation Time/Perks/$$ I'd go with Shop B.
Reason: You need to think about what skills your next employer will be looking for and how this new job will look on your resume once you want to move on.
You should try to go with the place you'll be happier working at. If you try to pick a job based just on career path, advancement, money, you'll probably regret it. Obviously if you can get both, the better.
You want to be at a place where you get along with the people, learn from them, can be productive as a team.
When the organization has good people, everything else should and most likely will fall into place: learning opportunities, career advancement, good projects, good technology, salary and benefits, fun place to work.
Benefits? (Vacation Time, Insurance, perks)
Branding? Are the companies both awesome brands? (you can define what an awesome brand is as it is very subjective)
Room to grow? (So how long until you're a Director of blah blah blah?)