You can handle both update and insert in one trigger.
Within the trigger, you have access to two virtual tables - INSERTED and DELETED. INSERTED would contain all the new rows inserted (or rows as they are after update). DELETED would contain all the rows deleted (or rows as they were before the update).
So your trigger could conceivably be like this:
CREATE TRIGGER dbo.SomeTriggerName
FOR UPDATE, INSERT
INSERT INTO YourAuditTable
SELECT *, GETDATE() AS datestamp
GOThere are some really good examples on the MSDN page: http://msdn.microsoft.com/en-us/library/ms189799.aspx