The biggest difference is that all ADK variants (the Microchip being one of them) only work on Android devices supporting OpenAccessory. These are only ones running Android 2.3.4+, and even among those, many DO NOT support OpenAccessory.
IOIO works virtually with ANY Android version (there were a few esoteric Android builds that where found not to work, but they are rare) - if the device happens to support OpenAccessory, it can use that, otherwise, it can fallback to ADB which exists on any phone.
In addition, the IOIO can use a Bluetooth dongle to communicate with the Android, without any changes required in your code.
Another huge difference is in what the software provides you. All ADK variants will basically provide you a bare-bone channel between the Android and the board. Now it is up to you to write firmware for the board, and software for the Android, establish some communication protocol between them, work in two different development environments and languages. Well - you get the idea...
In IOIO, the board comes pre-programmed with firmware, which you never need to worry about (you can if you really want to). You write only the Android side of your application, using high-level Java APIs for controlling the pins in various ways. This about it like it turns your Android into and Arduino, as opposed to allowing you to connect your Android to an Arduino. In addition to making it a lot simpler and faster to develop applications, it also gives you seamless switching between wired (USB) and wireless (Bluetooth) connections without your application ever needing to care about it.
Disclaimer: I invented the IOIO
In the future, the ioio-users Google group might be a good place for IOIO-related questions.