You could filter out what you believe are lower paid adverts. You can add up to 200 URLs to sites that pay very little. This post on using the filter is a good read -
http://www.johnchow.com/using-the-competitive-ad-filter-to-increase-adsense-earnings/ and I've used the Ads Blacklist (
http://www.adsblacklist.com/) as mentioned to block out cheap sites. Whilst Google has tried to crack down on arbitrage sites since 1st June, there are still plenty that slipped through the net.
Another way to look at things as well is how many adverts do you have displayed? Let's say you have a 4 ad block. The most worthy ad is at the top of the list and the cheapest is at the bottom, that's how it's displayed on your site. So imagine if you increase the number of ads on your site, you're essentially just adding even more cheaper ads to it. This is where you need to do some testing by reducing the number of adverts and seeing whether your CPC increases. On some sites I run just one single ad, mainly after blog posts. This way it doesn't overpower the site but it also displays the top paying advert that will be shown on that page.
If you're reluctant to reduce your ads, then why not reduce them a little and replace with a link unit. We've added a link unit to our top performing site and income has increased by 50% over the past week. Again, link units don't work for every site, you just need to trial it for a week or two and compare. Channel everything and determine what's the best position, best type of ad etc.