You can use charmm patch SP2 (dianionic phosphate), found in toppar_prot_na_all.str (http://mackerell.umaryland.edu/charmm_ff.shtml) to convert any residue with an -OH group into a phospho- derivative.
NAMD gives a short tutorial (http://www.ks.uiuc.edu/Training/Tutorials/namd/namd-tutorial-unix-html/node24.html) on using patches found in topology files.
Use CHARMM-GUI (www.charmm-gui.org) and it will prepare a topology with any patch available in CHARMM, as well as providing you with input files suitable for CHARMM, NAMD, GROMACS, etc.
I have faced the same needs for the project I currently working on. I have found a useful tutorial on YouTube for mutating a Serine to a phosphoresce using VMD. Here is the link below ("Mutating a Serine to phosphoserine in VMD). In addition, Troy Messina has a website on which you can find the powerpoint of the tutorial. The publication referenced can also be useful in first intention.
It's a good starting point however, in the following videos presented there are few things I have changed to be able to be able to smoothly run the simulation on VMD.
Otherwise there is also Vienna-PTM http://vienna-ptm.univie.ac.at
But I've never been able to figure out how it works properly, since whenever I tried to run a simulation I get a bunch of errors.
What kind of problems did you experience with Vienna-PTM? For now, we only support GROMOS force fields 45A3 and 54A7 - but in case you need just the initial starting coordinates, it might be also useful in this case.
PS: I know, that the installation of the parameter files in GROMACS can be tricky (depending on the version, you need to place the .atp file at the proper location and such).