When should I use ASP.NET Themes, and when should I use CSS? What are the advantages or disadvantages of using one over the other?
Better together !
But Themes are not a replacement of CSS, or they're not built for the equvalent purpose to the CSS. It's purpose is to define different themes on your application and to change them with a single line. Themes can include CSS files, image files and skins.
With skins, you can define styles for asp.net controls, so it includes complex and complete solution. For example you can define a gridview and define its style and attributes. You can define it application-wide.
So you I think they are better together, but not equivalent to compare.