Frequently I see shirts worn with ties that not only should never be worn, but should not even exist in this or any other space-time continuum. This includes black dress shirts, red dress shirts and dark tan dress shirts. If you own them, please, in the name of all that is good and just, stop wearing them. Purge your closet and drop them off at Goodwill. Or cut them into rags for washing the car. This is one of those times you need to cast out the leaven of the ugly shirt.
With most things keeping it simple is good advice. This certainly is true when it comes to dress shirts.* The colors you want are white and blue. Solid white (in a non-button down collar) is the most formal. You can wear it with virtually anything, but it is a necessity for weddings and funerals, especially if you are presiding. You must have at least one white dress shirt.
Solid blue–light blue–is perhaps even more versatile than solid white. The contrast between shirt and jacket is less severe than with white. You can wear blue in all but the most formal or somber settings.
Splitting the difference is the blue and white striped shirt. These add variety and visual interest while still being perfectly acceptable in most any circumstance. You have to pay a bit more attention to the other patterns you’re wearing with a striped shirt, but with a solid suit and foulard tie you reach near perfection.
Unless you wear a tie every day, a shirt wardrobe of two whites, two blues and two blue-white stripes will take care of any situation you should ever face. This is a simple wardrobe shift, it’s impossible to get wrong and, if you’ve been wearing the dreaded colored dress shirt, it will improve your appearance exponentially.
*For the sake of common discourse I am using “dress shirt” to mean a shirt one wears with a tie and jacket. Technically, a dress shirt is a shirt worn with formal or semi-formal wear.