At first, I didn't think I would have much advice to offer. After all, I don't have any experience marketing a commercial product as Open Source. However, a little consideration on the matter revealed that my eight years of observing the world of Free Software and Open Source hadn't gone completely to waste. The first opinion I could offer was the belief that "if you build it, they will come." In other words, if you really do have a good product that stands out from others of its kind, you won't need to give yourself a heart attack from waving your arms around and screaming at the top of your lungs trying to get the message out.
Of course, you do have to spend some effort to advertise yourself. The obvious place to start is with the big sites that cater to the entire Open Source world. Organizations like Apache, SourceForge, and freshmeat act as points of meeting and support for all developers and users, and thus serve as focal points for the community as a whole. Any aspiring project that wishes to make itself known would do well to join with these communities.
In addition to reaching out to the community at large to spread your fame, I can't urge you too much to give ample care and attention to your own private community of users and developers which forms around your Open Source project. Make sure that the development process of the project is as open and transparent as possible. Make it easy for people to submit their own contributions for inspection by the project's controlling developers. Be responsive and friendly to contributors. Keep the lines of communication wide open through mailing lists, public source code repositories, and whatever other collaboration mechanisms you can imagine.
You can also maximize the ease of entry for potential users (and thus potential developers) by developing installation packages that integrate well with all of your target platforms. It pays to seek to have these packages entered into the package distribution repositories of the major community-backed operating system distributors, such as Debian, Fedora, FreeBSD, and many others. Doing this successfully requires a certain level of collaboration with the respective communities that produce these operating systems, so expect to sink a little effort into joining with them. As a Debian user, I know that the first way I look to satisfy my software needs is by searching Debian's official package repository. I'll usually only search places like freshmeat and SourceForge if I haven't found something satisfactory in Debian's pool of packages.
If you're still seeking communities to join, try joining the communities that exist around other software projects that are related to your own. If it's possible to plug your software into another bit of Open Source software (or vice versa), you can use that as an excuse to build a bridge between the two communities. Be relevant and communicative to the community associated with this other piece of software. Soon, you'll have a lovely little web of relationships with other projects, and the recognition of your software will spread far and wide.
Here's another hint: People are almost always users of an Open Source project for a significant period of time before they even think about becoming developers for the project. The process is often slow and gradual. Don't expect a gold rush of developers to hop onboard the bandwagon. Using myself as a pretend example, I'll start just by using the software for a while, until I find a shortcoming in the software that I want to address, at which point I'll begin investigating how to modify the source code to do what I want. If I think it's worth the effort, I'll make the change and submit a patch, continuing to communicate with the upstream developers (that's you) until we've reached a consensus about implementing my change into the main code base. If the experience is pleasant, I'll probably repeat this process a few times, maybe even becoming a frequent contributor. Perhaps I'll become so involved in a particular aspect of the software that I begin to lead the discussions regarding it on the mailing list and become author of much of the code regarding that aspect. At that point, someone might feel the time is right to delegate the maintenance of that particular module to my authority. Who knows? The community around an Open Source project is an organic thing, and although it's a bit unpredictable, it grows steadily if nurtured.
Finally, I'd like to express the opinion that most people who contribute to Open Source projects do so out of self-interest, not altruism. This may be enlightened self-interest, but it is self-interest nonetheless, so you should market to potential contributors with that sort of psychology in mind. Don't expect to milk the altruism cow, because she's not real. Time is money, and people donate their time and energy to Open Source software because they believe that they will be rewarded with a better software product.
Thanks for offering your code to the world. I hope you find it a pleasant and rewarding experience!