How do I add a custom button on a listgrid toolbar?

To add a custom button/action to a listgrid we need to create a new ListGridAction and add it to the listgrid. We have a good sample in the BLC codebase with the Generate Skus action on the AdminProductController.