A plug-in is a "utility package/program" that is used within another program (i.e., it has no functionality on its own). For ex., in Sonar when you patch a reverb effect (or eq or compression, etc.) to an audio track, the reverb will be in the form of a plug-in. The reverb plug-in will take the audio signal from Sonar, process it, and return it with the added effect. However, it can't be used outside Sonar (except within another program that supports it).
Plug-ins can be included within the package that is supplied by the primary manufacturer, or can be provided by a 3rd party supllier. Sonar includes several plug-ins within it's base package (e.g., FXReverb), and there are 100's of others that can be downloaded and used from other suppliers (some are even free).
To get all these devices (the audio program and the plug-in) to work nicely together, you need a standard. Today there are two primary standards for audio plug-ins: DirectX and VST. DirectX is the standard used by Sonar/Cakewalk, Sonic Foundry and others, while VST is the standard used by Steinberg (Cubase/Wavelab) and maybe others.
If a plug-in is written for the VST standard, you can't use it in an audio program that utilizes the DirectX standard - unless you have a conversion program (i.e., a VST to DirectX wrapper). Therefore if you happen to have a VST plug-in and you want to use it in Sonar, you need a VST-DirectX wrapper.
(Not sure if this explanation is entirely "technically" correct, but it should give you the general idea.)