A quantum computer is any device that exploits quantum mechanical phenomena to run algorithms. Because quantum computers have fundamentally different computational properties than conventional computers, data held in quantum computers is referred to as qubits rather than bits. In conventional computers data is represented by microscopic grooves on a hard disk. In a quantum computer, data is represented by the quantum properties of a given molecule or set of molecules.
Instead of performing computations by retrieving data from a hard disk and processing it using an integrated circuit filled with logic gates, quantum computers process data by bombarding the information-containing molecule with short pulses of radiation. Each bombardment cycle represents an algorithmic operation on the data contained within the molecule. When the algorithm terminates, the quantum state of the molecule is measured, a process which itself biases the end result. This is due to the fundamentally uncertain nature of quantum mechanics.
To circumvent this difficulty, quantum computing algorithms are run multiple times and the weighted average of the output asymptotically approaches the correct answer. Because quantum mechanical phenomena are inherently probabilistic rather than deterministic, a well-defined answer on the first try is not possible.
Quantum computers possess certain capabilities classical computers lack. Quantum computing allows the quick factorization of large numbers (an explicit threat to conventional cryptographical techniques), the more accurate simulation of quantum phenomena, and very efficient database search.
For any search space of size n nodes, where each node represents a possible solution to a problem, there is only one possible solution, and each node must be checked individually for properties that correspond to a correct solution, quantum computing offers a fantastic speedup. In conventional computers, the average search time is the length of time it takes to check each node times the number of nodes (n) divided by two (it's probable that the solution will be found about halfway through the search). In quantum computers, the average search time is the length of time it takes to check each node times the square root of n. This confers a huge advantage which only becomes more impressive when we are considering larger problems.
It is not yet possible to conceive of all the applications of mature quantum computers. The largest number of qubits ever contained within one quantum computing system is 7. As quantum computing research continues rapidly on many millions of dollars in funding, it will only be a matter of time until a critical breakthrough occurs and impressive applications are invented.