Usually the approach that will get you the most realistic results will be to use sampled instruments. You can buy an all-in-one sampler with a wide variety of bundled sounds, or if you are willing to spend more, you can buy sets of samples on an instrument by instrument basis (e.g. piano, strings, drums are often sold separately).
For example, Native Instruments has a sampler called Kontakt which comes with 43 GB of samples, but you can also buy individual pianos from them such as Alicia's Keys or Berlin Concert Grand. Almost all other companies that make samplers have a similar lineup - you can expand the factory settings with additional libraries. These days, the add-on libraries often come with their own VST player, meaning you don't need to buy the full sampler, and their GUI is optimised for the instrument in question.
The other thing to bear in mind if you want complete realism is the need for 'articulations'. For example, strings can be played legato, pizzicato etc. Different samplers and sample sets offer different ways of triggering these articulations. You will also need a DAW (Digital Audio Workstation) that lets you sequence your song and play it through the samplers using MIDI. For example the latest Cubase has introduced better support for controlling articulations and dynamics.