How do I set spawn on a vanilla Minecraft server?
On a purely vanilla server, you can't. There are no built-in tools or commands to move the spawn point. However, without necessarily using mods like Bukkit, you can still use external tools to modify the level.dat file to change the spawn point.
You can use a program like NBTEdit or NBTExplorer (or NEINedit if on a Mac) to open your level.dat file inside your world folder. Then change the values for SpawnX, SpawnY, and SpawnZ to the coordinates you'd like for your new spawn.
Note that moving the spawn will also move the protected block radius, so keep that in mind.
You could try MCEdit, which allows you to modify spawn points within your level.dat file inside your world folder. Not sure if it has been updated yet.
Also, there is a height cap I believe for MCEdit, which prevents you from setting your spawn points below a certain y coordinate (I believe it's -173).
In recent versions of Minecraft, there is a command to set the world spawn point:
/setworldspawn X Y Z