Well, I'd start using CSS3 when possible. Stuff like roundedborders I'd definitely do in CSS3, because it's simple to use, and for those who don't have it, they can just suffer without rounded borders. It's not a big effect to have on a page anyway .
Same way with gradients. I COULD use an image to do the gradient, but if I use CSS3 I could do it like that. Provide a solid background color for those without CSS3 support.
Just make sure that the effect you are doing with CSS3 won't kill the pages look without having support for it. Have some degradation .
You should be looking at enhancing things with css3 so that good browsers get the best experience but older browsers get the standard experience.
Don't use any css3 properties that would break a layout if they were missing in certain browsers. Things like border-radius, text-shadow, box-shadow are just icing on the cake and do not break a layout if the browser doesn't understand them so you can use them safely.
For the more advanced, newer and experimental CSS3 properties I would wait until most of the browsers support them before using them as they may indeed change during development. By all means test and play around with the newer properties (because that's how bugs are found and that's why they are vendor prefixed) but just don't use then for real unless its your own personal hobby site.
CSS3 is being implemented piecemeal unlike css2.1 so browsers will probably never have full css3 support but certain properties will be safe cross browser. You can use sites like caniuse to gauge how much support there is for a certain property.
Right. Like Paul mentioned, I would recommend using it simply to enhance UX. Don't try and create a layout that relies on CSS3. It's like when IE6 was still a concern. Developers had to provide fallbacks for IE6 or older browsers like that. Do the same for CSS3.