I'm going to speak in general with a programming slant since this really isn't a software developer specific question. Most of this is simply food for thought since a career isn't really just a question of making the biggest salary possible.
Like most careers, the matter of pay comes down to what you know, how much they want/need you, and how well you negotiate. If you can make your employer feel like you're worth $1XX,000 v.s. $XX,000 you're going to get the bigger pay check. Just having a CS degree in and of itself is as useful to programmers as having a drivers license is to race car drivers. Some of my coworkers have a Masters in CS and others never went to College at all. I have an AS in CS and an unfinished bachelors and have done fine for myself so far. There are certain jobs I will never be able to get until I finish my bachelors because the people who hire are either told, or firmly believe themselves, that you must have a Bachelors of Masters from a highly ranked university to work there. I've been told that Google has that policy. From what I'm told, Apple and IBM also seem to have that policy unless you're damn good and don't mind being a contractor.
One thing I've found has helped me is to try my best to be indispensable but not irreplaceable... i.e. be such a valuable asset you're always wanted but don't pidgin hole yourself into a job where you can never move up or sideways. Two perks I've found to this strategy are: A. your employers make sure you're happy. And try to find interesting things for you to do, and B. If your company is going under, and someone asks your boss or manager "hey, do you have anyone good?" they'll tend to mention your name. At my current job I started as a Perl developer but then moved into iOS dev because I'm the only one on the team that knew the basics of the platform. As a result they paid me to learn iOS dev and they didn't have to pay a head hunter to find an iOS dev. Mutual win!
On the other hand Some people find a level and development stack they're comfortable with and try their hardest to stay there. I'm not one of those, so I can't really comment on how well that works. However, what I have seen is that people who are slow to change usually get left behind and out of a job. Another thing I can't comment on but seems to work for some people is finding your way into management as quickly as possible. I've met managers with only a couple years of experience. I've met people who started as interns and became managers because new interns came in and the old manager quit. At my first internship I was offered a similar position (I'd be the #2 manager) but turned it down because they wanted me to remain an intern for a few more months until more budget was freed up. I had another offer from a startup and took that instead.
Some places, usually mega-corps, ad networks, and naively run startups with too much cash on their hands, simply higher whatever grads they can get from whatever top schools they can attract because they know that for however many people they get, a certain number will be great programers, another tier will be just ok, and then they figure the six months of salary they spent on the rest was worth the investment in finding the first two groups. If they're really lucky, they'll land a super star and be able to retain them. If you're a really good negotiator, you can get into one of these places and from there flip work places and make a great salary while all along you know absolutely nothing about developing software. I went to school with one guy who does this (completely unaware of his incompetence) and met another from India who has been doing it since the .Com boom years (and is completely aware of his incompetence).
Huge pay checks are nice, but working in a friendly environment with good perks and competitive pay is better IMO. I'd rather make $70K and be happy than $120K and miserable... but at the same time I have very few material wants and am single. If you have an expensive hobby (say a race car) and/or a family, perhaps your case is different. If you can get paid > $100K while working in a fantastic environment, then you're set.
Another thing to look at is stock options. Obviously this is not a sure thing, but if you can find a competitive salary at a start up the stock options could end up being worth more than the difference in salary you'd get while working at a mega-corp. Again, kids, mortgage, expensive taste might make you prefer the safer more secure approach.
Finally, if you fancy it, you can be a contractor for most of your career and do pretty well. My cousin taught himself electronics and programming in the 80s and got his start in Hollywood building lighting computers and PLC based stage controls (an example of something he worked on include stages that move and reconfigure themselves during the Super Bowl). He branched out into other areas and got to do some work for military contractors, an early IMAX competitor, the Luxor casino, and a now defunct F1 team. He made a lot of money, saved most of it, and retired, comfortably, at 50. This is a guy who was totally self taught.