Pick up Joe Celcko's SQL For Smarties. That's one of the definitive take-your-sql-to-the-next-level books. Otherwise, just keep writing queries.
Make sure you understand joins. Since the beginning of time, my SQL methodology has always been row-count driven - In other words, as I write a complicated query, I'm always #1 making sure it returns the correct number of rows. If your rowcount is correct, then your sums/groups/aggregates will all be correct. And they are VERY easy to mess up.
Make sure you understand the data. Make sure you understand keys and uniqueness so that you can enforce your joins.
You can also read asktom.oracle.com for a lot of really cool SQL trickery. Laurent Schneider is also very cutting-edge sql-wise. I wouldn't be half the DBA/Developer I am today had I not set asktom as my home page for the last 5-6 years.
Finally, make sure you understand set based operations. Think of the result set as a whole, not just a collection of rows. It'll click as you do it. This relates back to the row-count-driven methodology.