Answer
LAST_DAY(SYSDATE+1) is a solid choice — since the next-execution date gets calculated after each run, adding a day before applying LAST_DAY ensures the following scheduled run lands on next month's last day rather than re-triggering on the same day. Any expression that evaluates to a valid date should work in principle, but it's worth testing on your specific database version, since some more exotic date expressions have had compatibility issues on older Oracle releases.