In general, we use findchips.com and then back that up with octopart but whichever you use they're pretty similar in functionality. We think that if you're good with component naming conventions, findchips is a little more powerful - you can search and compare multiple packages/tempgrades. If you're just starting and images help you out, octopart has that going for it.
If you're looking for just some common parts, check out our partfinder as well, which has more of an 'expert system' approach.
Findchips is sort of the old standby, it's been around as long as I can remember and works fantastically. It used to be an independantly owned website but the fellow who runs it sold it recently to supplyframe (which was a competitor). Basically, supplyframe sells the information to distributors - maybe about which parts are common, or how their pricing compares.
If you're someone who doesn't like having their every click tracked, we suggest using an anonymizer and blocking cookies.
Lets say you want to find Atmega328P-PU - the DIP version of the Atmega328p - more commonly known as the chip inside an Arduino. Type as much of the name as you know into the box and click Find.
Octopart is a more recent addition to the mix. It also makes money by selling information on usage. There are tradeoffs to using Octopart. On one hand, they have a nifty 'instant' search feature which can be handy (although we found it confusing at times).
As you can see, the information is very similar, but in this case the information is a little compressed.