Well, I'm biased, but I would recommend deal.II. It's got the AMR plus all of the finite element stuff you'll ever need plus more documentation than you can read in a lifetime. It also scales to 10,000+ processors. It only supports quads/hexes, though. (Disclaimer: I'm the principal author of it, along with a couple dozen other co-authors from around the world.)
There are other libraries that have other combinations of feature sets:
- libmesh: Very similar in many regards.
- FEniCS: More targeted to higher level problem descriptions. Meant to be used on a more intuitive level. I don't know how well it supports AMR or scales to large machines.
- There are a number of packages that are more targeted to individual kinds of problems (e.g. LifeV and OpenFOAM for fluid dynamics problems).
I will gladly let others join in to add more links to more libraries. I think that even taking into account my own bias, the ones above are what a neutral person today would want to look at.
On the other hand, if the goal is to simply have a library that can manage the adaptive mesh, possibly widely distributed, then I would recommend p4est. It's occasionally a bit clumsy in its use, but it's lightweight, well written, and scales further than any other mesh project I can think of.