rpmfind analyze the current state of the system, check a remote database using HTTP to lookup the packages providing the best affinity with your current software base and also list the extra packages that you need to install to solve the missing dependencies.
Rpmfind can also do the transfer once the list of package has been established.
home page: http://rufus.w3.org/linux/rpm2html/rpmfind.html