I've got an obdlink.com LX101 bluetooth code reader, and a Foxwell reader (that needs updating). Not sure which app I used with the LX101 on a MINI to read codes, but it was years ago. Similarly with the Foxwell. Also used the LX101 with an app called BimmerCode, which allowed you to change vehicle options, eg, remote window closing or seat belt nag beeps, not normally available in the car's driver interface. Not sure if my setup read all the other modules, but as I recall MINI (BMW), and VW have control modules for different car functions. So, you "need" something to read faults in those modules, not just strictly the engine and transmission gov't required OBDC codes. Like the dealer, lol. I'm not interested in coding the car for different options that did not come with it, although I've done that with another program with a MINI to get satellite radio enabled. There were opportunities to brick the car doing that though. At this point in my life, I'd just probably keep my future DL FWD stock for the most part, with possibly a coded option or two, and the ability to diagnose any problems (not just bare minimum engine/transmission). So, what's best for Prius?
While this thread was originally written for the benefit of 2nd generation Prius owners, the overwhelming majority of the information within it applies to all models of the Prius. tl;dr: The Autel MaxiAP 200 or 2500 smartphone-based diagnostic readers offer extremely good coverage of all systems at a price that works for most DIYers. Note that these are purely diagnostic systems, they don't let you go setting soft options to my knowledge. Other apps and interfaces are more focused on exposing optional choices for various system behaviors. Some of them can also do very basic diagnostics on portions of the powertrain. I'm not aware of a single gadget or app that covers both types of usage, but honestly a pair of apps and bluetooth dongles isn't a terrible tax for comprehensive access. Hope that helps.
The OBD2 reader that I prefer is the Launch CReader Elite for Toyota. It does all the services, is bidirectional, allows you to read all the sensors in real time, allows you to activate any elements of the vehicle, allows you to make any personalization parameters, etc ... I also have a bluetooth dongle with Carista which is interesting, but not as complete.