Yep, png is the way to go. CSS3 supports specing transparent backgrounds within your style sheet, but CSS3 isn't universally supported at this point.
Just remember that transparent pngs aren't supported by IE 6 and earlier. You'll need some code your head tags to work around it like the following. Unfortunately, the submission process clears out the code when I try to post an example. I've used a workaround at my site,
Graphic and Web Design Services - like the goddess. Look for "if lte IE 6" statement.
Hope this helps.
Diana