There are several types of virtual synthesizers on the PC. Some let you emulate a standard sound module (e.g. Yamaha's Soft Synth XG Emulator or the Roland Virtual Sound Canvas). Some let you create original sounds which you can then render and listen to (e.g. Wavecraft).
This page is not about these programs. It is about the third and most exciting type of software synth, the real-time analog synth emulator (though it doesn't really have to emulate any synth - not just an analog one). These allow you to create your own sounds and alter the parameters while listening to the sound. Apart from not having real knobs and switches, and that running one takes up a whole computer, they are just as good as a genuine analog synth, both in terms of quality and flexibility. Just as with real synths each one has its own sound with its own characteristics, so it is impossible to say that one is absolutely better than another. I only cover PC-based synths on this site, but there are links at the bottom of this page to programs on other platforms.
Note that the faster your processer is the better your computer is at running virtual synths. It reduces latency, increases polyphony and allows other applications (e.g. a sequencer) to run at the same time. The FPU speed of your processor is very important - Cyrix chips have the slowest FPUs, followed by AMD K6, then Intel Pentiums/Celerons, but AMD Athlons are the fastest.
There are several ways to use the output of a software synth within a sequencer such as Cubase and Cakewalk. My preferred way is to record the output of the synthesizer to an audio track within the sequencer. This way there is no CPU overhead on playback and many software sequencers can be used in one song or even simultaneously. An alternative is to run the sequencer and synthesizer at the same time. This has a CPU and latency overhead, but makes it easier to make changes and more interactive. An extension of this is to have a dedicated computer for the software synthesizer - an approach followed by many GigaSampler users - where a PC, software and soundcard is still much cheaper than a less powerful hardware sampler. The last alternative is to record the output of the synthesizer into a smapler, which is most useful for short sounds such as zaps.
Analog Emulating Keyboards
Recently there having been a few keyboards being released which are in effect hardware-based analog synth emulators. Examples are the Yamaha AN1x, the Roland JP-8000 and the Nord Lead. I bought a Yamaha AN1x and it was definately worth it. It is more convenient, quicker and more powerful than many synth emulators, and also provides plenty of controls so I can manipulate knobs in software synth programs much more easily.
OPL3 FM Synthesizer
I have also had a look at what the OPL3 FM synthesizer chip can do (this chip is present on almost all soundcards). In theory it should be roughly equivalent to a Yamaha DX-27, but unfortunately it isn't. It doesn't seem to be capable of anything better than the type of sounds you get in old computer games. If you are interested in experimenting with it try FMED, Folk or SBTimbre but don't hold your hopes up high.
Realtime MIDI Processing
If you are using a virtual synth (or even a real synth) that doesn't allow arpeggiation, MIDI delay, etc. then I recommend AWEToy, even if you don't have an AWE32. Also available is MIDILang, a programming language for processing MIDI messages, but I didn't find it very useful. There is a program called Seq-303 which is meant to emulate a TB303-like sequencer, but I am not a big fan.