If it's installed by script kiddies, antivirus and some
anti-spywares will be able to detect it.
If it's installed by an expert, then there is little chance of
detecting unless you know your system very well.
If it's a hardware keylogger, just look around your PC.
There's a software recommended by Major Geeks, whether it works
I've no idea.
http://majorgeeks.com/Anti-keylogger_d2125.html