Big post to help anyone fighting with a choppy rodent. 
Mice speed, accuracy and acceleration are all handled quite poorly in X.
For people coming from Windows this can be a bit confusing.
Traditionally, mice are controlled by the command.
xset m <acceleration> <threshold>
Acceleration can accept fractional values of the format 67/100, 3/2, 5/9 etc.
The acceleration parameter is a multiplier that is applied to the mouse cursor motion.
If the acceleration parameter is set to ``4'', the mouse cursor moves across the screen four times faster than you move the mouse.
Setting a high acceleration is convenient for quickly moving the mouse cursor large distances on your screen.
However, it can be awkward when you want to position the mouse precisely.
The pointer can move too quickly and it becomes difficult to focus the mouse cursor on a small area on your screen.
To overcome this problem, you can set the threshold parameter.
The threshold controls the number of pixels the mouse cursor must move before the cursor motion accelerates.
For example, suppose you set an acceleration value of ``6'' and a threshold value of ``8''.
The mouse is configured so that if you move the mouse cursor more than 8 pixels, the cursor can then move 6 times as fast on the screen as you actually move the physical mouse.
To see your current xset mouse settings type xset -q | grep accel in a terminal.
Now, in terms of the Gnome Mouse Settings Applet:
A value set using a terminal command of "xset m 1 1" is equivalent to -
Acceleration Slider At half way. (This is 10/10, which is of course 1)
[====*====]
Sensitivity Slider Unmoved. (1)
[]
The following tips apply to the Logitech MX518 (c01e). Some/most should work on newer mice, but take care.
Some tips are obsolete depending on your build, but I include them for completeness.
Setting the DPI
Install lomoco. Add the following line to /etc/rc.local
lomoco --help to see other dpi settings.
This will set your mouse to 1200dpi and stop the cruise control buttons from acting on their own.
Part of a general strategy to enable all the buttons on Hardy (with xmodmap and btnx)
In your xorg.conf
Set the Resolution in the Device section.
Modify USB polling rate. (2 methods)
Add usbhid.mousepoll=1 to the kernel parameters for 1000Mhz polling.
Change the value contained in /sys/module/usbhid/parameters/mousepoll
to 1.
In /etc/rc.local
Or try

Mice speed, accuracy and acceleration are all handled quite poorly in X.
For people coming from Windows this can be a bit confusing.
Traditionally, mice are controlled by the command.
xset m <acceleration> <threshold>
Acceleration can accept fractional values of the format 67/100, 3/2, 5/9 etc.
The acceleration parameter is a multiplier that is applied to the mouse cursor motion.
If the acceleration parameter is set to ``4'', the mouse cursor moves across the screen four times faster than you move the mouse.
Setting a high acceleration is convenient for quickly moving the mouse cursor large distances on your screen.
However, it can be awkward when you want to position the mouse precisely.
The pointer can move too quickly and it becomes difficult to focus the mouse cursor on a small area on your screen.
To overcome this problem, you can set the threshold parameter.
The threshold controls the number of pixels the mouse cursor must move before the cursor motion accelerates.
For example, suppose you set an acceleration value of ``6'' and a threshold value of ``8''.
The mouse is configured so that if you move the mouse cursor more than 8 pixels, the cursor can then move 6 times as fast on the screen as you actually move the physical mouse.
To see your current xset mouse settings type xset -q | grep accel in a terminal.
Now, in terms of the Gnome Mouse Settings Applet:
A value set using a terminal command of "xset m 1 1" is equivalent to -
Acceleration Slider At half way. (This is 10/10, which is of course 1)
[====*====]
Sensitivity Slider Unmoved. (1)
[]
The following tips apply to the Logitech MX518 (c01e). Some/most should work on newer mice, but take care.
Some tips are obsolete depending on your build, but I include them for completeness.
Setting the DPI
Install lomoco. Add the following line to /etc/rc.local
lomoco deviceid dpi nocruisecontrollomoco --pid=c01e -m --no-sms
lomoco --help to see other dpi settings.
This will set your mouse to 1200dpi and stop the cruise control buttons from acting on their own.
Part of a general strategy to enable all the buttons on Hardy (with xmodmap and btnx)
In your xorg.conf
Set the Resolution in the Device section.
Section "InputDevice"
Identifier "MX518 Optical Mouse"
Driver "evdev"
Option "Name" "Logitech USB-PS/2 Optical Mouse"
Option "AllowMouseOpenFail" "true"
Option "VertScrollDelta" "12"
Option "Resolution" "1200"
Option "Emulate3Buttons" "false"
EndSection
Modify USB polling rate. (2 methods)
Add usbhid.mousepoll=1 to the kernel parameters for 1000Mhz polling.
title Ubuntu 8.04.1, kernel 2.6.24-23-generic
root (hd0,1)
kernel /boot/vmlinuz-2.6.24-23-generic root=UUID=ba636202-3275-45ed-b485-da35aa659c61 ro quiet splash vga=794 usbhid.mousepoll=1
initrd /boot/initrd.img-2.6.24-23-generic
Change the value contained in /sys/module/usbhid/parameters/mousepoll
to 1.
In /etc/rc.local
echo 1 > /sys/module/usbhid/parameters/mousepoll
Or try
sudo -i
echo 1 > /sys/module/usbhid/parameters/mousepoll