The best and easiest way of looking at the differences is creating a datadictionary which lists out your tables, columns and objects. Then you can compare the data dictionary reports side-by-side. I recently did one with Reporting Services 2000 (which isn't the best tool since it's a first iteration program, but is free). RS 2k5 promises to be better.
However, a quick and dirty (but potentially confusing) way of doing it is to use already existing system Stored Procedures and system tables for finding your details.
Look in Books Online for the Information_Schema. views that pull base information about your table names and column names from the system tables. Information_Schema.Columns, Information_Schema.Tables and Information_Schema.Table_Constraints are just three of many system views that will give you information on your objects. Additionally, sp_addExtendedProperty and fn_ListExtendedProperty are great for adding definitions to database objects or viewing previously created object definitions.
SysTypes, SysObjects, SysColumns all contain the details of the various tables/columns including datatypes, column defaults, etc. But be very leary of doing select statements directly against system tables as doing them wrong can alter your system tables and cause your entire SQL Server to crash (worst case scenario). Mostly, you'll want to use the Information_Schema views to avoid damage.
Other than that, you could generate the complete script for each database and do a line-by-line compare of the objects after the scripts are generated.
Purchasable tools that do database compares include Computer Associates "Erwin" data modeling program which can do a complete compare between two databases and is much better than doing a manual compare. It also enables you to reverse engineer a database for printing out a db diagram and creating brand new models for soon-to-be databases.
Hope that helps!
Catadmin