We use DB Comparer from EMS - they have a large range of tools each specifically targeted for a particular platform (they support SQL Server, MySQL, Interbase/Firebird, PostgreSQL, Oracle etc).
The program allows you to compare 2 databases, and generate scripts for going from each database schema to the other. It works out dependencies and each of the script components are shown in a sort-of visual way (it's really a glorified owner-drawer listbox, I think). You can run bits of the script against the relevant database, save scripts down to files, etc etc.
We use it mostly for keeping our development SQL Server 2005 databases in line with each other.
It's not free, but there is a trial version available and it's not particularly expensive given what it does.
We have quite a number of EMS tools here and they're all pretty good - much prefer using their SQL Manager for SQL Server tool to the ones that come with SQL Server, or any of the commercial offerings we looked at a couple of years ago (Toad, Redgate, Embarcadero etc from memory, I think).