Is there an application that can tell you what DLL's and other dependencies a program uses?

Dependency Walker can do this.

Or on a running application, Process Explorer can list the DLLs with CtrlD.