As meder implies it could be different for different appications.
Transparent PNGs will be best for anything that you need a realistic shadow for, or if you need "complicated" transparency - like, for instance, a logo.
CSS transparency should be used for easy/"block" transparency. eg: if you want to make a "popup" window that is slightly transparent. Because the whole block just needs to show some of the background through its fine. It can also be used to animate a fading effect...
But... all animation should use jquery to be honest. You're going to have to use javascript anyway, and things like jquery's fade functions are cross-browser compatible and proven/solid code.
It does just depend on your own specific needs.