Maybe you've solved your sorting problem by now, but I will describe a quick fix. I found out that the announcements are ordered first by ViewOrder and then by PublishDate (in descending order). When an announcement is added, today's date (CreatedDate) is being copied to PublishDate, but with the time set to 00:00. So if for example CreatedDate = 05.10.06 10:56, then PublishDate = 05.10.06 00:00.
If you create several announcements the same day, DotNetNuke can't distinguish between them and sorts them in registering order. In the folder: "DesktopModules\Announcements\Providers\DataProviders\SqlDataProvider" there are several provider files. Search for the line: "order by {objectQualifier}Announcements.ViewOrder asc, {objectQualifier}Announcements.PublishDate desc" and change "PublishDate" to "CreatedDate". The last created announcement now is placed at the top.