Number one with a bullet is one that most of you never think of but, trust me, the PC vendors and developers are painfully aware that Linux needs to do a much better job of managing power. With more and more of us doing our work on laptops, netbooks, and the like, getting the most out of battery life is becoming increasingly important.
Yes, Linux has long had support for ACPI (Advanced Configuration and Power Interface), but that's only the start for power management. To really get the most from a battery requires power-aware device drivers, power-aware applications and fine granular control over each component in a system. Linux has miles to go before it can equal Macs or even Windows in this area.
Next up is applications. You and I might know that OpenOffice can do almost anything you can do with Microsoft Office, and it can create Microsoft Office-compatible files to boot, but people still want Microsoft Office. Like it or lump it, people want their familiar native Windows applications. There are several answers to this.
One, like what Adobe has done with Flash and Acrobat, is for the software vendors to create Linux versions of their programs. IBM, as they announced with Novell, Red Hat, and Canonical/Ubuntu at LinuxWorld, are now offering a complete office suite-Lotus Notes, Sametime, and Symphony-that runs on Linux, Windows and Mac OS. That's the best way, but many Windows-centric software vendors still don't see enough of a Linux market to go to the trouble. We can't count on this happening anytime soon.
Another approach is to use WINE. This provides Linux with Windows APIs (application programming interface), which can then be used to run native Windows applications on top of Linux. This actually works quite well with many mainstream Windows programs. I, for example, run Office 2003 on Linux all the time with WINE.
The final way is to use virtualization. Programs like OpenVZ, KVM, and VirtualBox all make it easy to run Windows at the same time as you run Linux. Personally, I use VirtualBox. Except for two Windows test boxes, one XP SP3 and one Vista SP1, it's the only way I run Windows now and it works great.
Open-source purists object to those last two methods and that's fine... for them. For the mass audience, though, WINE or virtualization are serious alternatives.
Finally, there's the eternal problem of device drivers. While it's true that there's almost no PC peripheral out there that doesn't have some Linux support, many of the most important ones, like Wi-Fi and graphics cards, don't have full driver support. They'll work, but you can't get to all their power. It's annoying.
This is getting better. Atheros, the Wi-Fi silicon vendor, for example, recently open-sourced their drivers for their 802.11n chipsets. However, other Wi-Fi companies, like Broadcom, are still hostile towards open-source.
Many other hardware vendors are still acting like open-source is the enemy. Most of them are finally getting the clue that supporting Linux by at least opening up their APIs so that open-source developers can write drivers for their devices is good business and it won't cost them one red cent. In the meantime, poor or incomplete driver support is still a real annoyance to users.
The Linux desktop has other problems, of course, but if the developers can just nail these three areas down, then the Linux desktop will get a big boost towards becoming a mass-market desktop.