How to roast peanuts for peanut butter?
If you're going to roast the peanuts, definitely roast them before grinding. Do like you would any other nuts: in the oven, maybe 350F, spread out not too deep in a pan, until they smell toasty and nutty, making sure not to burn them.

If you ground them into peanut peanut butter, and then tried to roast it, it'd be a lot tougher to roast. You'd have to spread it out in a thin layer on a pan, since if it's thick only the surface would really roast. You'd have to be really careful about overroasting, since you won't be able to directly see if the bottom is scorching. And then you'll have to scrape out the pan to try not to waste any, and still have a greasy pan to clean up. Roasting before, on the other hand, is easy. There's space for air between the peanuts so they'll all roast. You can easily give them a stir if you need to, and see directly whether they're burning. And the pan will basically still be clean when you're done.

Whether or not to remove the skins is mostly down to personal preference. You will end up with flecks of skin in the peanut butter, so if that bothers you, remove them. If you're really sensitive (and eating the peanut butter mostly by itself) it's possibly you'd notice a texture difference too. But they won't taste bad (some people even think they improve the flavor), so do whatever you feel like!

If you do want to remove the skins, you can and should wait til after roasting: they should be much looser and easier to remove after roasting. You might even be able to get a lot off simply by putting them in a bowl or colander and shaking. Otherwise, putting them in a kitchen towel and rubbing around should work pretty well.