I always use a starter, even for my smaller beers (I just make a smaller starter). Of the calculators dryboroughbrewing mentions below, I really like yeastcalculator.com. It's numbers are based on your starter growth method, and the site provides a pretty straightforward and easy-to-read view of the approximate number of cells you'll grow.
Like I said, I always make at least a small starter. It doesn't happen often, but I have had a couple of "dud" yeast packages from both Wyeast and White Labs. They're great companies, but even the best of manufacturers cannot guarantee 100% success with every product, every time.
Making a starter is a good way to determine the yeast's viability. And by using one of the calculators above, you can ensure that you're not overpitching or underpitching.
For most beers, my starter method is:
1. (2-3 days before brewday) Pitch yeast into a starter of the appropriate size to reach my desired pitching rate.
2. Run the starter for 24-36 hours on my stirplate (most of my starters are done by the 36-hr mark)
3. Cover my flask with sanitized foil and place it in the refrigerator prior to brew day.
4. On the morning of brew day, decant as much of the starter wort from the compacted yeast cake as I can. Replace it with 200-300 ml of fresh starter wort. I pressure can starter wort in quart and pint jars, so I always have some on hand.
5. Swirl the flask to mix the cake with the new starter wort. This goes into my fermentation fridge at the set fermentation temp. This allows the yeast to wake up and be actively eating, as well as acclimates them to the temperature they'll be working at when I put them in the main wort.
I did this exact process with a beer last weekend. It was a 1.049 dry stout. I made a 1L starter and fed it another few hundred ml of starter that morning when I began brewing. The mini starter was at high krausen when I pitched. I had activity in my blow off tube within a few hours of pitching.