Note: most of these plugins are also on my website: http://thepiz.org/plugins/
(either that site or this thread may be more up to date at any given time)
MIDI processing VST 2.4 plugins, available for Windows (32-bit), Linux (x86), and Mac OS X (Universal Binary), unless otherwise noted. Mostly written in C++ apart from a few old SynthEdit. Anything that needs a GUI is done with JUCE.
Current price: free.
If you feel like it:

"pizmidi" collection: (Small non-GUI MIDI utilities)
midi16CCRouter - Changes up to 16 CCs to 16 other CCs.
midi2qwerty16 - Use MIDI to trigger fake keystrokes to the focused window.
midiAlias - Note values are reflected between a "Nyquist Note" and a "Zero Note," similar to the effect of audio sample aliasing.
midiAudioToCC - Converts audio amplitude to CC messages.
midiBlackKeyFilter - Separately adjust velocity of black and white keys, and/or send them on different channels.
midiCCModulator - Use one CC to modulate another CC (or note velocity) in various ways: add/subtract/multiply/etc, plus logic gates (AND, NAND, XNOR, etc).
midiCCReset - Remembers CC values and sends them out again at selected times.
midiCCStepper - Quantize CC events by value or in time.
midiCCToggle - For changing momentary CC buttons into toggles.
midiChannelFilter - Simple single-channel filter.
midiChannelize - Transforms everything to the selected channel.
midiChordSplit - For splitting polyphonic material to multiple midi channels based on selected note ranges for each voice.
midiChs_noGUI - Channel filter/changer like energyXT1 "MIDI chs" component.
midiConverter3 - Change and convert between CC, Channel Pressure, Poly Aftertouch, Program Change, Pitch Bend, NRPN/RPN, Note On/Off, and other messages in various ways.
midiDelay - Delay notes and/or CCs with feedback.
midiDuplicateBlocker - Remembers all MIDI message values it gets on each channel, and blocks any repeated values until a different value is received.
midiExactDelay - Simple delay (no dry signal, no feedback) with flexible and precise delay time.
midiFingered - Selectively sends standard portamento on/off CC messages to emulate "fingered portamento" for synths that don't have it.
midiForceToKey - Enforces a scale, and transposes within the scale (optionally based on MIDI notes on a selected channel).
midiForceToRange - Transposes notes by octave into the selected range.
midiInvertNotes - "Mirrors" notes centered around the selected note.
midiKeySplit - Simple keyboard splitter.
midiKeySplit4 - Four-zone keyboard splitter.
midiNotchFilter - Isolate, remove, or channelize specific MIDI messages.
midiNoteGroups - Assign play and/or choke groups to MIDI notes.
midiNotesToCC - Converts note number and velocity to CC messages.
midiNoteToggle - Notes (optionally within a selected range and/or channel) are toggled... play a note once to turn it on, play it again to turn it off.
midiNRPNConverter - Converts between NRPN/RPN and CC messages, with 16 conversion slots.
midiOverlappingNoteKiller - Prevents overlapping notes at the same pitch.
midiPitchBendQuantize - Quantizes pitch bend messages to up to 25 values.
midiPitchBendToNotes - Changes pitch bend plus note messages into notes at the "bent" pitch (may be useful for using Suzuki QChord with non-multitimbral instruments).
midiPolyphony - For spreading polyphony across MIDI channels, i.e. if you play 4 notes, each one will go to a different channel. Polyphony per channel can be set from 1 to 16 notes for more flexibility. You can also use it to convert polyphonic input to monophonic output.
midiProbability - Add probability-based effects to incoming MIDI events, optionally synced to host timeline.
midiProgramChange - Send Program Change and/or Bank Select messages.
midiScaleChanger - Transposes notes by individual scale degrees and/or globally, to change one scale into another. Among other things, this allows you to play any scale using only the white keys.
midiSimpleLFO - One CC LFO with some "simple" options.
midiSostenuto - Like a piano sostenuto pedal, but for MIDI notes instead of piano dampers.
midiStrum - Sequentially delays notes of an input chord to simulate strumming.
midiStuckNoteKiller - Sends note-off messages to end hanging notes when the host stops (for hosts that don't do this themselves).
midiSwing - Delays and/or offsets velocity of and applies probability to notes (and optionally also CCs) at every other step of a selected note value.
midiTranspose - Transposes notes on a selected channel, with selectable range up to ±72 semitones, and option to transpose immediately (splitting sounding notes).
midiTriggerList - Use one note or CC to trigger up to 8 other notes and/or CCs.
midiVelocityScale - Scale/reverse/offset velocity of input notes (Note On and/or Note Off).
Download:
Windows: http://thepiz.org/pizmidi/pizmidi.zip (20111013)
Windows x64: http://thepiz.org/pizmidi/pizmidi_x64.zip (20111013)
Linux: http://thepiz.org/pizmidi/pizmidi.tar.bz2 (20090223)
Mac OS X: http://thepiz.org/pizmidi/pizmidi.dmg (20111013)
For Windows, DarkStar has made GUI versions:
http://asseca.com/wiki/MGUI/MdaPizmidi

Other miscellaneous plugins (no GUI):
Gain - Simple gain plugin for linux: Gain.so.bz2
link/unlink - Not a midi plugin - A workaround for XT2 to get back the XT1 functionality to link/unlink audio inputs and outputs (Windows)
midi8CCRouter_PC - The same as the 16 CC router, but with only 8 slots (so that Cantabile shows full-length sliders), and responds to Program Change. This might be useful if you have a midi controller with a small number of knobs (or only a mod wheel), to change their function using Program Change messages. (Windows)
midiCCToTempo - Use a CC to control the host's tempo, if supported by the host, which it almost certainly isn't (Windows / Linux / OS X)
XT2 transport control - Control XT2's play, stop, home, and record functions with midi (Windows / Linux)
Plugins with GUI (mostly Windows only unless otherwise noted):
AudioToCC - Improved version of midiAudioToCC with GUI and many other features.

midiLooper - "Amazing" beat-synced midi sampler/looper in development (see this thread)

midiStep - Play a MIDI file one step at a time with timing based on input notes.

midiPCGUI.zip - Same as midiProgramChange from pizmidi collection, but with a GUI with big numbers.

cpuram - Displays system CPU load and free physical memory

midiPads - 1 to 64 buttons/sliders/XY-pads that send learnable midi messages, with resizable GUI. (also available as part of Jost, the open source multi-technology Linux host!)

midiChs - same as energyXT1 "MIDI chs" component

midiKeyboard Win/Mac - Resizable piano keyboard to monitor/play midi notes

midiMonitor Win/Mac - Resizable, scrollable midi monitor. can save log as text or midi file. loads default settings from "midiMonitor.fxp" in the same directory as the plugin.

Big Clock - Configurable, resizable counter for bars/beats/ticks, hours/minutes/seconds/frames, or samples. Can set up "cues" to display at selected times.

image - Displays an image, and optionally a line of text. Resizable. Load images (png/jpg/gif/svg) with drag & drop. Supports program change.

midiOut Win/Mac - Sends MIDI directly to an output port. Now can also send MIDI clock & song position pointer. Has a small icon to remind you which device the midi is going to (drag & drop to load an image).

midiIn - Receives MIDI from an external input.

midiCurve - Maps a CC, velocity, aftertouch, and/or channel pressure according to a curve. Instructions are in the plugin (click "Help"). There is also midiPBCurve for Pitch Bend.

midiChordAnalyzer - Guesses chord names based on MIDI input, or from clicked notes on the keyboard display. You can copy the chord for pasting into midiChords (or as plain text).

midiChords - Maps every MIDI note to 0 or more other notes, with chord recognition and many other features.

Source Code:
Most of the source code is available at Google Code, but by clicking this link, you agree not to make fun of my code in public.
To Do:
- Documentation for GUI plugins
- Add more useful presets
- Add support for 14-bit CC pairs where appropriate
- Actually remember to update above website
Future Plugin Ideas:
- Something like soma's enveloper (smooth tempo-synced audio to CC) (in progress)
- CC smoother (see soma CC_Glider)
- Advanced note transposer/filter/splitter (like XT 1.x MIDI Patcher / asseca's MidiSplit)
- Random note generator (better than randomid)
- Random cc generator (maybe something like Modismaster, but different)
- Something like Trollo (configurable qwerty to midi)
- Some kind of graphical CC LFO/envelope (like XT 1.x envelope comp)
- Complex CC LFO (two oscillators modulating each other, etc.)
- Joystick to midi
- Mouse (trackball, trackpad, graphics tablet...) to midi
- Learning midi message translator (midi macros?) (14% done)
- Note (start,stop,length) quantizer (old SynthEdit attempts: noteonoffq & Lengther)
- SysEx recorder/sender
- Endless encoders (prototype)
- "Round robin" midi notes
- One dedicated X/Y pad with every option imaginable
- Midi-controlled mouse pointer & buttons (test version - needs work)
- Velocity compressor/expander
- CC scene morpher (see MiddyMorphy)

- CC to SysEx (proof of concept: midiCCToSysex)
- midi note stepper (like cc stepper but for notes)
- chord plugin
- Any other useful ideas I (or you) can think of