There has been some growing concern lately that Automattic is taking steps to kill the "Premium Themes" marketplace. Whether this is true, who can say? Being in compliance with the GPL is easy, and you can still make money from the process. There are two ways.
The first way is the ugly way, from a development point of view. You release your theme as GPL, and then charge for support of that theme. This way is ugly because you can't simply do your work, release your code, and watch the cash roll in. If people pay for support, presumably you're offering them some service in addition to what they're getting for free. Perhaps this means free updates, although those updates would inevitably be covered under the GPL. More likely support would include customization, access to developers who can customize, access to support forums, and tutorials that show you how to use or customize the theme. Is there enough value there for users to pay for? Maybe.
What people seem to really like about the concept of making money from theming is that they can create something and then sell licenses to it that allow people to use that work. They're selling themes like they are a physical object, one chunk of cash per one chunk of code. The trick is that unlike candycanes or dolls, there isn't a separate physical thing exchanged in each sale. The thing you're selling with software is typically the license to use it, not the software itself. The GPL under which all WordPress themes must be releases says that you can charge for access to the work, but you can't restrict re-sale. And since you can't re-license your themes to use a more restrictive license (because that would violate the WordPress license terms themselves), you're pretty much stuck in this situation.
The second way to make money is by using the Street Performer Protocol. The way this works is that you set a high bar for a price for the theme you want to release. Post teasers for your work where people will see them. Advertise the theme, perhaps show it in action (although this may lead to theft, so maybe not). Within the theme page, link to the sale page. The sale page would say something like this:
Contribute as much money as you want toward the purchase of this theme. When I reach my goal of $XX, I will release the theme to the public under the terms of the GPL so that anyone can use it, and I will send you an email telling you that the theme is now available.
When you get your high bar's worth of cash, release the theme. What's nice about this is that you're completely GPL compliant, and you've sold your theme in a safe way. Even better, you can still offer support services, as with the prior option.
There are services that help enable this method of selling so that you don't have to do it all yourself, and can even refund people's money if they don't reach the bar.
This is a much better model than debating whether GPL necessarily applies to CSS, HTML, and images. It gets money paid for work as if it was done for a contract, but allows you to build work in advance and benefit the community as a whole after you get your just payment.