Ableton Push
Not just for Ableton Live. The Push is a great MIDI controller in that you get 64 velocity-sensitive pads, 11 endless encoders, and a 4-line LCD. The problem is that it takes quite a bit of programming to customize it to the specific needs of an application.
Here is a Max-centric Javascript project for making the Push a more approachable tool for use. It's a work in progress, and currently only for those with some Javascript knowledge of their own. Longer-term, the vision is to create a Javascript, platform-agnostic framework for using the Push as a set of widgets (knobs with configurable ranges, menus, on/off pad switches, etc) that can be easily configured for your specific application.