I use my Motorola Droid exclusively for geocaching. My Garmin Summit is collecting dust since I got it. I haven’t had much trouble yet with tree cover. In clear skies I have a consistent +/- 6ft accuracy.
I use C:geo for casual “wonder what’s around here?” caching and GeoBeagle when I am working on a specific cache. Both are free both are great.
I also use an app called GPS Status to enter coordinates for things like Multi’s and Mystery caches. Not sure if I need to do that or not, but it’s easy enough.