Another non-javascript alternative:
(1) sort the data in your prompt query in reverse chronological order, and add a data item using the Rank() or Running-count() function (wrapped in the to_char() function) so that the current month is always associated with the value '1'. Use this data item as the "Use" value for your prompt and set 1 as the default for the prompt.
(2) to decode the prompt value back to its time period (1=current month, 2=last month, and so on) create another query which contains your actual time period column(s) and the function-based data item, and filter it with the prompt value (filter may need to be at query level)
(3) use a tabular reference and filters to join to the query in (2) above on your time period column(s) in any tabular models where you need your time filter.
This assumes ReportNet but a similar approach should be possible in Cognos 8. This has potential negative performance implications depending on your data but I've has good luck with it in several reports. It's good for reports which are both scheduled and run interactively since the saved prompt value '1' will always return the current period in the schedule (though if you view the saved prompts, you will see the display value for whatever month was current at the time the prompts were saved).
Steve