Okay... not quick and simple and I don't have the specific details, but here is the general idea I would use.
I would write some VBA code that does the following:
1) Loop through each Policy
2) Withing each loop, keep track of a currentDate variable that is initially set to the Issue Date.
3) Increment the currentDate the appropriate number of months depending on the mode of the policy (monthly, quarterly, annual, etc.) until the specified day (in your example, 28-Jun-2009)
4) When incrementing currentDate, determine if a premium was paid for that day and record that fact.
5) To find the future premium dates, add the appropriate number of months to currentDate; that should give you the next premium due date.
The dateadd() function should be very helpful when adding a specific number of months to a date.
That probably doesn't give you all the detail you want, but again, you question isn't a small question either. Let me know if that helps at all or if you need more details, which will take a little longer to put together.