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
ON dbo.YourTableName
FOR UPDATE, INSERT
AS
INSERT INTO YourAuditTable
SELECT *, GETDATE() AS datestamp
FROM INSERTED;
GO
There are some really good examples on the MSDN page: http://msdn.microsoft.com/en-us/library/ms189799.aspx