I would be concerned if my 560 were reaching 90C at stock speeds.
Some things to check for:
Do you have the most current GPU driver installed?
http://www.geforce.com/drivers
Can you verify that the GPU fans are spinning?
Can you adjust the fan speed with MSI Afterburner or a similar program to compensate for the heat?
What program are you using to monitor your CPU temps? I recommend Core Temp http://www.alcpu.com/CoreTemp/ You can make it log your CPU temp information to a file so you can more closely examine what is going on.
You can also log GPU info with MSI Afterburner. I recommend doing this as it might shed light on the nature of your problem, just make sure you enable all of the info collection possible in the settings.
40C is kinda hot for idle. My CPU is in the 20's for idle, for instance. Make sure you're really idle by eliminating every process you reasonably can via task manager.
Cleaning dust as theclouds suggested is good, too, but make sure you *do not* use compressed air. Some online guides recommend it, but as soon as you forget to keep it tilted up at all times, you release a bunch of crap onto your motherboard.