Here is one implementation of a DDL trigger that I use on my SQL Server databases.  This helps me easily keep track of what changes are made as well as who and when they were made.  Some of these DDL events can be retrieved from DMVs, but having this detail is very useful for a quick reference to see what has changed.  I have this DDL trigger set to execute as dbo since I restrict DML permissions on the dbo.ddl_audit table.  This helps keep people honest.

More details on the attributes of the EVENTDATA() function found here: