Sometime it will be very hard to have version control between 2 databases of same project(say local copy and client copy). In such case query below is awesome
* assuming that procedure start with some prefixes
select specific_name from db1.information_schema.routines where routine_type = 'PROCEDURE' and
Left(Routine_Name, 3) IN ('sp_', 'xp_', 'ms_')
EXCEPT
select specific_name from db2.information_schema.routines where routine_type = 'PROCEDURE' and
Left(Routine_Name, 3) IN ('sp_', 'xp_', 'ms_')