You should be able to use the Reports module without having to create your own module.
SELECT ItemID, ModuleID, CreatedDate, Title, URL, ExpireDate, Description, ViewOrder, CreatedByUser, PublishDate, ImageSource
FROM Announcements
WHERE (ModuleID = XXX) AND (ExpireDate < GETDATE())
ORDER BY PublishDate DESC
Use XSLT to control the output.
Other options are, of course, to use a different module. Ventrian Articles is a commonly used module that, IIRC, lets you display "expired" announcements.