Emacs 24's package system is hot. It spreads a few hundred packages to every emacs user. (In GNU emacs, 41 packages (not counting built-in ones). With MELPA, 307 packages.) Before this, it takes years of emacs experience to know what packages are out there that are actually usable.
So, if you have written a package, putting it into a package repository would greatly increase your user base. I haven't done it yet myself, but here's a tutorial from Jon-Michael Deldin.
MELPA is pretty easy (https://github.com/milkypostman/melpa#contributing-new-packages) after you do it once.
- Fork the MELPA repository on GitHub
- Create a new file in the “recipes” directory with the right format. It's really easy — just take a look at an example recipe (https://github.com/milkypostman/melpa/blob/master/recipes/ir-black-theme).
- Test it with the ./buildpkg script and do M-x package-install-file
- On GitHub, visit your fork and click the Pull Request button
That's pretty much it. Marmalade is a little easier (just upload a tar or .el), but you have to upload a new version for each release.