There are 3 apps that I know of, in no particular order:
RingScheduler by CellAvant -
RingScheduler (TM) - Utilities BlackBerry Apps
Profiler / Profiler Pro / Location Profiler by ToySoft -
ProfilerPro - Automate sound profile switching - Utilities BlackBerry Apps
BlackBerry Profile Switcher by WCS Software -
BlackBerry Profile Switcher
Please note: all three have the same limitation, profiles cannot change automatically while the device is holstered, keylocked, device locked or in Standby mode. The current RIM API's do not allow for direct profile switching, so the only way around it is to use Keystroke Injection (to simulate keypresses) which cannot be accomplished programatically while the device is locked/holstered/etc. However, each of these programs does alert you via vibrate/sound/LED that it wants to change profiles, so that you can unholster/unlock the BB.