One-year master's programs in computer science are usually terminal course-based degrees. They are essentially useless for a future research career, because they do not include time to do research. (PhD admissions committees care about your research potential much more than your grades.) Put brutally, professional MS programs exist for the sole purpose of trading tuition for the promise of a higher salary. The advantage of these programs is that successful graduates (at least from my department) actually do get higher salaries, and the program only takes one year. Also, if you work for a particularly enlightened employer, they may be willing to (help) pay your tuition.
Two-year master's programs in computer science are more research-based. In addition to classes, most research master's students write a thesis describing original research; that's why it takes two years instead of just one. That's also one of the advantages of the program; you have more time to learn outside the formal classroom environment. You may also be able to secure funding through research or teaching assistantships; these are almost unheard of for professional master's students. The disadvantage is that if you're not interested in research, the program takes two years instead of one. On the other hand, a research masters seems to have the same effect on salary as a professional masters, in part because it's impossible to tell from a resume what type of MS you have.