The thing to look for are SQL wait times. There are DMV's that can sow you what the system is waiting for. Look at Brent Ozar's site for more details.
Things to look out for: SQL server will (by default) use multi-threaded parallel processing for queries that it expects to take longer than 10 seconds or so. Sometimes this is just not appropriate for the type of query being performed and you get very high CX_WAIT times - where the different threads need to talk and syncronise with each other. You can get better throughput (more transactions per second, even though each transaction takes longer) by setting this value higher (on the server) or via a hint on the query. (See Google for more details!)
Does your queries have lots of complicated string manipulation? Or CLR functions?
SQL is most likely to be DISK bound, then RAM speed bound before being pure CPU bound.