In 2003, I was presented with a lovely Logitech optical mouse (an MX500). It had a wheel (not an ubiquitous feature then), no fewer than eight buttons, and an excellent 800 cpi resolution. Unfortunately, Linux would see it as a 400 cpi device, and two of the buttons would echo the wheel motion. A bit of quick research on the web uncovered the sage advice ‘you can't do anything about the extra buttons, live with it’. It also uncovered a list of vendor-specific USB control commands for Logitech mice (proving yet again that the majority of Linux users are no longer producers but ― at best ― consumers).
So, enter lmctl, a quick hack I wrote to control USB Logitech mice. It will obviously only work in the mouse's USB personality (not when it's connected to the PS/2 port with its adaptor).
Lmctl supports various vendor-specific commands, a good proportion of which isn't supported by my own mouse (an example is wireless status reporting). As such, it's provided as is, and it may not work on your mouse at all.
The tool is available as source, Debian and RPM packages. It's provided under the terms of the GNU General Public License, version 2. There is a Freshmeat entry available.