This has been asked before, here and here have some brief answers. There are also a lot of relevant questions on men's formal wear if you search the subreddit.