Whether you plan on creating a new set of cursors or simply wish to edit a few cursors you will likely want to start with the cursor file already installed on your system. By using the existing file you will have a good point to work from.
We will be using a program called xmbdfed to edit the cursor file. It's available as a precompiled binary and as a source tarbar.
From an xterm start xmbdfed:
$ xmbdfed
Import your system's cursor by clicking on File / Import / Server Font. A new window will appear with a list of the fonts installed on your system. Select the entry called "cursor" and click "Get Font." All of the glyphs should now be displayed in a grid. Double click on a glyph to raise the editor window. Once you are done editing the glyph click on File / Update to update the main grid of glyphs.
If you look closely at the grid you will notice that each glyph has two entries. The first entry is the actually glyph and the second is the mask for that glyph. For example, if you have a pointer glyph with an area in the middle of it that you wish to be displayed as white you will need to mask that entire area. To put it simply, anything not masked will be transparent.
Once you are done editing your cursor file, save it in the fonts directory in your home directory.
$HOME/fonts
Another great mouse cursor editor is DeCurs. You can download the program along with sample cursor files on Pasi Savolainen's website.