Pros
The quality of co-workers is great. The internal organizations can be great resources for growth both through formal education as well as through collaboration with colleagues. The frequent flier points are nice :) In most cases all employees are treated as adults and their is little micromanaging. You know what you have to get done and as long as you do it nobody cares when. This is particularly great when working from home or when you are on a non-traveling assignment. IBM is a leader in managing remote teams and its management is comfortable with remote teams and never 'seeing' employees.
Cons
At IBM you either travel or your job will get outsourced. You are often quickly type cast and if you have one set of skills it is very difficult to get onto projects where you can utilize skills you are trying to develop and need hands on experience. Personnel managers are often clueless and simply pushing papers as most have too many employees under them to truly be effective in their roles. Annual reviews often limit managers to only rewarding 1-2 employees outstanding ratings and everyone else is average. This is due to employee reviews being tied directly to bonuses and the limited bonus pool. You often never meet your managers in person.