Keyloggers are usually classified as "malware", but as already pointed out, companies may install keyloggers to help detect/prevent theft of intellectual property or to verify compliance with computer usage policies. There are also keyloggers installed as part of some "nanny" programs, where parents are allowed to view the online keystrokes of their children to help ensure they are not venturing into dangerous territory or providing restricted information (ID's, Addresses, Phone Numbers, Credit Cards, etc.) to unknown people online.
Whether for "good" or "bad" purposes, keyloggers can be designed to report access on local machines only, or to send reports to remote locations. As with most "malware", unless your particular keylogger has been encountered in the wild and reported to researchers, there is a good chance it could lay dormant and undiscovered for a very long time. Once keyloggers are discovered and "fingerprinted", they can generally be ferreted out by anti-malware products. The best software keyloggers install themselves "silently" (i.e. they don't appear in a list of installed programs). Some, like the recently revealed Conexant Audio Driver in HP laptops, are harder to spot, because not too many people think to look at a computer vendor's pre-installed software as being "malware".
As already discussed by others, there are software programs designed to prevent keylogging. However, you need to understand how "keystrokes" are handled inside your computer to determine whether these solutions are effective. When you hit a key on your keyboard, the electronics in the keyboard generate a "scan code". That "scan code" is then converted by the keyboard driver in your computer to the "key" the software is expecting to see. From the time the "key" is generated by the device driver, to the point where the "key" is consumed by the receiving application, it is vulnerable to interception. The goal of a good anti-keylogging application is to intercept the "key" as soon as possible after translation by the driver, and to scramble (encrypt) it so it travels through the system in a form that would not make any sense to a keylogging application. At some point just prior to being "consumed", the anti-keylogger application needs to unscramble (decrypt) the key so it will make sense when it is delivered to the consuming application. The closer the intervention point (to the device driver on one end, and the consuming application on the other) the more effective the anti-keylogging application will be.
Virtually every operating system implements some sort of keyboard buffering which not only allows users to type as quickly as they can without "losing" keystrokes, but also allows for repetition of a command (e.g. use of the F3 key in MS-DOS to repeat the last command). A proper anti-keylogging application will ensure that this buffer is also maintained in an encrypted state.
You asked whether virtual keyboards and password managers can stop keylogging. The answer is "no". Both these methods are merely using alternate means of delivering a stream of "keys" to the keyboard buffer, so this stream needs to be processed as if the keys were coming from a keyboard.
On a final note, be aware that wireless keyboards provide another method for keys to be monitored. The keystrokes are literally broadcast over the air using bluetooth signals. While bluetooth includes encryption in its implementation, some brands of keyboard do a better job of protecting these wireless transmissions. Search for articles on the dangers of wireless keyboards to learn more.
In terms of the software suggested in this discussion, I have personal experience with the KeyScrambler Personal product. While it's "cool" to watch your keystrokes translated into gibberish, I found that, as a very fast typist, some of the characters I typed were missed. That's not to say it may not be effective - but I ended up uninstalling it because finding the mistakes became more frustrating than the potential benefits.