Vantaggi
If you are a programmer fresh out of college, Microsoft is a good place to work for a few years as a kind of software engineering apprenticeship. It does depend somewhat on the group you join and your manager, but in the right situation, you can learn a lot. Another reason to work there would be if you have a family, Microsoft has a pretty generous benefits package. Also, if you enjoy doing nothing, there are plenty of jobs at Microsoft for you. Just search under "architect".
Svantaggi
It's a giant, bureaucratic company that is only getting bigger and more bureaucratic. The company is growing beyond all need and beyond all reason. There is little to no value in the myriad new processes that are constantly being introduced. However, introducing and managing process is what the company rewards, so this is only going to get worse. Senior management is terrible. They make horrible decisions on acquisitions and strategy. Within any individual division, there is never a clear focus. Building great software has given way to building fiefdoms, protecting your territory, and introducing useless process. Increasingly the management of any given division actually knows very little about developing software. Despite all claims to the contrary, beyond a certain level, it becomes very difficult to grow your career as a technical individual contributor. You can either move into management and become useless, or you can spend more and more of your time with political maneuvering and visibility games so that you can continue to get promoted. Either way, less and less of your time will be spent actually designing and developing software.