Smart crash reports requires free registration to get the crash report to be sent to you...
Uli's one sends the crash report on "next launch"… (may be never of course…)
Martin Redigton's one has a lot of parameters to play with:
More informative: the information that can be collected includes contact information, user problem description, crash logs, log files, preferences, and the output of arbitrary commands
Highly configurable: the user interface and information to be collected can be configured via an xml configuration file.
XML property list default output to allow easy automatic processing of incoming crash reports
Extensible data collection architecture, so that you write plugins to collect specific diagnostics for your target application, if the existing types are not sufficient.
Extensible delivery mechanism, to allow you to tune delivery to your requirements.
"BugReporter" mode, that can be used to collect information for non-crashing bug reports in a standardised format.
Can handle multiple bug/crash reports at a time.
Reports can be saved for later delivery.
Fully localizable, to allow users to be asked for bug reports in their native language.
Ours is as powerfull as Martin Redigton's one, but requires a little bit more work from you: you have to (as an option) supply code inside your application to be debugged and a tool to add your own information and to do the actual reporting.
The counterpart of this small work (examples supplied) is of course a greater freedom regarding the content of the generated information and how and when to deliver it.
Two versions are supplied, one's installs as a daemon inside your application bundle and the other one is a static library to be linked into your application.