I use this script to generate a dataset for a report that tells me when subscriptions fail to send e-mail or post reports to file shares based on the value of the lastStatus column in the subscriptions table.
Trouble is it generates a report and e-mail whether there are failures or not. If you have the Enterprise edition, you can do a data-driven sub that will get around this.
Failed subs will stay on the list until they run successfully.