It is suggested that players read "Winning No Trump Leads" and "Winning Suit Contract Leads" - Both by Bird and Anthias. Below is a summary.
Against 3 No Trumps
1) Unless there is a very good reason not to - Lead a Major Suit - This applies when either the opponents do not use Stayman or if the response to a Stayman call of 2♣ is 2♦
2) Do not lead a Major suit, however, (unless your suit is very strong), if the 1NT bidder shows a major and the Stayman asker converts to NT.
3) Most 3NT contracts will have 25 - 27 high card points. If your partner holds the stronger hand, try and find his major - usually by leading your weaker major suit (3 card suits are preferable)
4) Surprisingly leading a doubleton honour pair in a major (KQ, QJ) is a very good lead - you hope partner has length and your honours can set up the suit
5) Leads from 6 card suits (unless you hold most of the high card points) tend to work out badly. Partner is likely to have a singleton and cannot help set up the suit
6) Leading unsupported Aces is not that bad an idea - you retain the lead and once you see dummy you can then switch to the most promising suit. The downside is that it can set up an extra trick for declarer, so I would not do so if partner is known to have a weak hand. (from the bidding).
7) Leading from a 4-card suit headed by a King or Queen is not a good idea - it costs 1/2 a trick on average with limited rewards. Against 1NT, however (when partner is likely to be stronger), aggressive leads can turn out well. Against 3NT - be passive.
8) If intending to lead a suit holding two touching honours e.g. KQXX(X) - lead one of the honours. It stops declarer winning a trick cheaply.
Against Suit Contracts
1) A singleton (non trump) is almost always the best card to lead
2) Leading a doubleton can work well - the idea is not so much to get a third round ruff, but to set up partner's honours, which are more likely to cash since declarer will have more cards in the suit.
3) If partner is known to be weak, however, leading a doubleton is less effective.
4) Leading a trump should be avoided - it gives up a tempo and can give declarer a free finesse. Only lead a trump if a) your other suit combinations are dangerous i.e. headed by Kings and Queens or b) declarer is playing in his second suit - since then he will be anting to ruff his first suit in dummy.
5) In duplicate bridge, the primary concern for an opening lead is safety. The lower the top card, the safer the lead. Underleading suit combinations such as KJXX, QTXX, are particularly risky.
6) In duplicate bridge it is usually a winning decision to cash an Ace against a Slam (also applies to 6NT). Failure to do so often results in declarer winning 13 tricks in the other suits.
7) If opponents are obviously sacrificing over your suit contract - lead your suit. Opponents will be short and therefore more likely to be able to throw away a loser.
Pay attention to the bidding to estimate where partner's strength is and the most likely suit. "Blind leads are fordeaf players" - Terence Reese.