The question is, do you want the best FREE program, or do you want the simply best without any other conditions?
I personally started with Eagle which is great for simple stuff, but now that I use Orcad at work I would not go back since I had setup v16.5 at home, especially if you need to cram lots of components within a small multilayer board. The most important part of the layout is the ability to smoothly nudge vias and traces out of the way and very inteligent routing of traces that allows you to stick them as close as possible without painstakingly moving every singe vertex and then checking DRC over and over again until you get it right like you have to do in eagle. It does have a few quirks that could be improved in terms of user interface, but the job still gets done much much faster than it would be with Eagle or other simple pcb packages.
Another thing I like is that the footprints and schematic symbols are separate, so if you need to change a so-16 package because it causes problems with the soldering machine then you do it just once and for all parts that will use it. You could theoretically have one huge library in Eagle for all the components you use and then change the package in one place only as well, but having just a single library is quite impractical.