Here's a brief cautionary tale, posted purely for your amusement:
Today I loaded a piece I had recorded last year into Cubase SX 3. Lots of VSTi's. Decided I wanted to change the arrangement in various ways. Started tinkering with MIDI tracks.
Weirdness -- some softsynths had significant latency (~200ms) when played live from a keyboard, others didn't. It wasn't the fault of the ASIO interface. It wasn't because of any MIDI processing inserts. Care to guess the culprit?
--> Plug-in effect latency compensation. At some point, probably after recording the MIDI in the existing tracks, I had added WizooVerb 2 on an aux send. It's a convolution reverb, which means it will always exhibit latency. So Cubase very intelligently uses compensation on the tracks for which that send is active, so that the reverb will play back in sync.
Trouble is, Cubase can't very well send the audio to the reverb 200ms before you start playing a MIDI note. So tracks with a send to WizooVerb have MIDI latency. This happens even if the send is infinitely attenuated.
Replaced the WizooVerb with Steinberg RoomWorks (not nearly as good a reverb, but okay in a mix) and the problem went away.