I’ve been asked this question before and my general rule of thumb is 20. I touched on this in a January, 2007 post about diversification however I’ll just rehash it a little bit. I think that if you own over 20 stocks you run the risk of becoming too diversified. If you’re too diversified you basically become the market and if that’s the case why waste the time and commission fees buying individual stocks? Simply buy some low MER index funds and get it over with, because if you diversify too much you’re going to mimic the index anyways.
There are of course exceptions, for example if you’re pursuing a high risk strategy such as penny gold stocks it would probably be wise to create a basket of these high risk stocks and hope for a few big winners. Additionally, if your portfolio is under $70,000 I don’t think that you should be aiming to hold 20 stocks. I believe that if you can’t commit a minimum of 2.5% to 3% of your portfolio to a stock you probably shouldn’t buy it. I will often buy a half position ie- 2.5 to 3% of a stock and if it increases and grows into my target 4 to 8% of my portfolio great! but if not I will wait and average down to increase the weighting.