Basically I'm wondering what a sensible approach to learning Windows driver development would be.

I have a logitech mouse that logitech decided to drop support for Vista/W7 on, and I'd like to write a driver for it but if that isn't possible it's fine and I would work with some other device.

Where to begin?

1. Download and install a WDK.
2. Study the documentation and samples.
3. Find a datasheet for the device you want to drive.

After that a driver for a mouse-class device is a matter of one week.

Do I Need to know assembly?

While I'm an advocate of learning assembly, you don't need to know assembly to write a Windows driver. You might choose to use assembly at some point, in which case knowing it expands your options, but it's not a prerequisite.