dselect, APT, aptitude, and Synaptic, all provide some form of automatic dependency resolution. In rare cases, a dependency can't be resolved automatically, and user intervention is required. aptitude will calculate alternatives and ask the user to select from them. APT and Synaptic generally require the user to add packages to the command line or selection list manually.
Such problems generally only occur in the testing and unstable releases, where software dependencies are constantly updated and some may not completely resolve until all of the software involved has been updated and placed in the release. However, one common source of this problem occurs in the stable release as well, and is due to a dependency on a virtual package.
A virtual package is not the name of an actual package, but the name of a library or function that anyone of a number of packages can provide. Since there are usually multiple packages that can satisfy the dependency, the user must choose one to manually install, after which the remainder of the original dependencies can be satisfied automatically. TIlis rarely occurs during a standard upgrade, and almost never during a distribution upgrade, where such virtual packages are selected automatically.
In general, you will only see this probland then rarely, when installing single packages manually.