-It really is a never fail. If you're unsure about a combination of pants/blazer/suit/tie/etc, a white shirt will never be a wrong turn in an outfit.
-For ultra-formal looks, white really is the way to go. You can get away with other colors, but white will never get a questioning look when you've got to be dressed to the nines, and you'll never appear out of place.
-It goes with everything. Gray, black, blue, green, khaki, patterns, everything. No need to wonder if your suit, pants or tie is going to clash because white will always complement what you're wearing. Now for the other, colored elements, that's a different story.
-You need one. In the event where you have to travel or wear a formal look with several different suits and/or ties in a short period of time, or if you get quick notice that you have to dress up and don't have the time to get creative, go for the white shirt since it will always look good. This is a necessity, and you need to make sure you have a well-fitting, non-stained white shirt at the ready for anything that could come up.
-It's boring. White is kind of a snoozefest. If you have the choice of shirts, try to opt against white unless any other color would actively look bad in a combination of tie/pants/suit/whatever. Because it's a go-to, it's predictable and if you're trying to stand out in any way, you won't.
-It can be costume-y. With black pants, you run the risk of being mistaken for a cater-waiter, magician, you name it. Black and white is the typical male "uniform", with or without a jacket, so go for a pattern or color if you're going with a black suit or black pants. Especially in the times that you're not wearing any sort of jacket, try go for anything but white.
-It's too easy. Easy can be good in a pinch, but if you have time to plan your outfit, get a little more creative. It will pay off because it will look like you took time to think about your look and you'll appear much more stylish and detail-oriented, no matter what situation you're dressing for.
-It can appear too formal. I'm always a proponent of being overdressed rather than underdressed, but a white dress shirt can sometimes seem too formal. Paired with jeans it can be a weird mix of dressiness, and with dress pants, a suit or even just a blazer it can elevate an otherwise nicer than casual, but not necessarily dressy, look a little past the easy feeling you're trying to go for.