Pros
You can go as far as you want at IBM. There are so many opportunities to get recognized from a technical standpoint that don't move through your management chain, so nobody can take credit for your work. IBM rewards employees for submitting patents, for presenting ideas that make sense, etc.
Cons
You have to know how to play the politics game. Managers can play favorites, and make sure those favorites are being promoted, getting interesting work assignments, etc. Sometimes the only solution is to punt and look for opportunity under another management chain. Also, IBM still has the "Employee for Life" attitude, and think nothing of keeping an employee at an entry-level position for 5 or more years, and at a staff position for the rest of their careers. In a lot of technology based companies, employees do not stick around 5 years.