Unicorns are defined in this community as individuals who are designers & programmers simultaneously.
How they're born
Logically, most unicorns are designers who have learned to code (although I'm sure it goes both ways). HTML/CSS have the least barriers to entry in terms of development, and are the most obvious add-on skill for a designer.
After designers learn HTML/CSS building a web site at this point is pretty easy with tools such as wordpress, joomla, drupal etc. available. Designers who get better at this eventually branch out, acquiring the skill (this being an actual language, such as ruby, js, etc.) to make ANY of their designs come to life - not just things that fit a certain mold.
That is the most obvious driver - being able to take an idea from conception all the way through to execution.
However, there are many people ("unicorns") like myself out there (the most well known may be Drew Wilson - and I've also seen a few comment on some of my other posts here). But if so many exist, why is the designer-coder considered a rare mythical beast? There are a couple reasons:
Someone who has been driven enough to learn both skills of the trade most likely has the innate desire to create and build products, so as soon as they can work for themselves, they will.
This doesn't make them poor team players, if anything it gives them the motivation to contribute and learn as much as they can at any startup, because simply put - they get it. They know the startup they'll some day run, will hopefully have people just like themselves, who should be equally impactful.
They only fit at startups
This is an assumption from my personal experience, so please comment if you feel differently. But from what I've seen, people with these highly desired skill sets are more valued on smaller teams, where wearing multiple hats is of higher importance. Larger teams generally desire individuals who are focused on their primary skill. For me personally, I love design, and I love programming - I won't even talk to a place that wouldn't allow me to do both.
So how do you get a unicorn on your team?
Simple, hire designers who want to learn to code (and have at least some kind of foundation in the basics) - and make sure your developers are open to mentoring them.
Your environment's overall efficiency should increase ten fold when the designer can take over more of the front end work and deal with the design-related software bugs.
It'll make the lives and working relationships of your designers and developers better, while increasing the value of your designer immensely, and letting your developer eventually focus more on future facing issues and features (and things they probably enjoy working on the majority of the time, i.e. not bugs).
Edit: To be clear, this article frames "unicorns" as designers who are jr. software developers. It is not to say they're more valuable than anyone else in a team. It is to say, they can help make a team more proficient through smoother communication. If you read this article in any tone besides that of food for thought, you're doing it wrong.