Pros
Microsoft is extremely professional and mature when it comes to software development. If you want to know how to really make software, this is where you want to work. Also, if you plan to have any kind of health issues, ever, you want to work here as well. The health benefits are gold plated. And the chances for advancement are good (up to senior level).
Cons
If you are not on the software development track you might not have the most fun in the world. Testers often try to move over to software development. And PMs seem to change quite frequently. So some jobs are better than others there. Also, once you reach the senior level it is very, very hard to move up to the next level (architect). Some groups don't even have an architect assigned to them, so you may never rise above senior level (I certainly couldn't). Finally, the cafeteria food is not that great.