First off you need to be aware that there is not a single "one-size-fits-all" synthesizer that can produce any sound you like. That's simply not doable while keeping the synthesizer itself usable*. So as a first step you need to know what kind of sounds you want to generate, and in the second step you can look for suitable synthesizers. One synthesizer may be good at generating synth drum sounds, another synthesizer may be great for airy textures, yet another synthesizer might produce nice bell sounds. And most importantly, many sounds are simply difficult to synthesize, no matter how expensive your tools are. In that case, a good old recording of the sound is a better solution than a generator tool. That's how sample-based synthesizers work and that explains why they can offer such a rich palette of different sounds. You can also just take some free VST instruments and render some notes into sample, but again you need to know what kind of sound you're after because every VST plugin has its own sound.
* You could say node-based synthesizers (like Reaktor or 64klang) with a large variety of processing nodes are kind of an exception to this rule, because in the end you are building the synthesizer yourself with those nodes. But this can quickly get very complex and you really need to know what you're doing if you want predictable results.