To find what it directly needs:
readelf -d APP | grep NEEDED
ldd as mentioned elsewhere will show all direct and indirect libs - everything it needs at runtime. This may not be a complete list, since you may dynamically open things with dlopen(), but this should work 99% of the time.
ld and libtool are used at compile/link time. They aren't useful once you have an app.
EDIT I can see by later answers you were asking about OSX, but I want to add to my answer on Linux tools:
One thing I forgot to mention, quite a while ago; you asked about versions. Neither
readelf will answer the "what version" question. They will tell you the filename of the library you are looking for, and the naming convention may have some version info, but nothing enforces this. Symbols may be versioned, and you would have to much about even lower level with
nm to see these,