Simulated annealing is just an optimization. I use it for modelling human motion. You have the position and acceleration of each bone in the legs and feet. You start by deciding on a variable (say, reducing energy expenditure for gait), and then letting the algorithm alter variables and attempt to minimize a variable.
So if quantum annealing is anything like simulated annealing, you aren't "solving" for a single, correct answer, but getting a solution that minimizes or maximizes an outcome faster than brute force.
So a quantum computer could solve "What is the factorization of this huge number?", while quantum annealing could solve "Given these 30 different engine configurations, which combination of intake pressure, fuel flow rate, turbocharger performance curve, and engine timing would result in the best fuel efficiency?"
Here's a value of the fuel efficiency; find me a setting of the parameters that achieves a fuel efficiency better than that.
It's now a search problem. To find the best fuel efficiency, just binary search over possible values of the efficiency.
Where D-Wave differs is that you can only solve a particular kind of optimisation problem, and this kind of problem can't encode general computation. General quantum computers can solve general computation problems, not just the simulated annealing of D-Wave QC.
D-Wave markets themselves as having hundreds or thousands of qubits, but these qubits aren't easily controllable or measurable in ways that would allow Shor's to be executed on them (for example), so at the least, it seems like dishonest marketing. In order to build a general quantum computer, you need to be able to apply gates to arbitrary collections of qubits.
I'd recommend everyone to check out IBM's online http://www.research.ibm.com/quantum/ for a brief tutorial on how you need to be able to wire qubits together, and what a general quantum computer would look like. (You can even execute the result on an actual Quantum Computer; so it gives some idea of what an API would look like).