Wearing a light colored shirt made of cotton or linen (white/ similar) and embarassed about the undershirt/vest that is showing through the shirt? Gone are the days of such agony.
It doesn't make a good impression when someone can see your undershirt through your shirt especially at formal occasions where you feel comfortable with such shirts looking all dapper but the show spoiler is your visible undershirt from over a mile away.
Try purchasing undershirts that are not bright white but shades like a light gray or others closer to the color of your skin (closer but not too close though please) which are not so visible through a shirt. Since the color is closer to your skin color than a white vest, the lower contrast between shirt, skin and undershirt will help any awkwardness.
(AW- Anil)