For peanut butter, do peanuts have to be roasted with their shells or without their shells?
The shells are not used in making peanut butter.  You would need to shell these peanuts (and remove the papery skins from the individual peanuts) before grinding them to make the peanut butter.

It doesn't matter whether they are roasted in the shell or not--what matters is that they are roasted, to give the deeper, richer flavor.  

I have to assume your peanut vendor did not mislead you, and therefore the peanuts you bought are already roasted.  You would just shell them and grind them.   Note:  if they are roasted, they will be somewhat crunchy, with a toasty complex aroma, and light medium beige to brown color, whereas raw (or "green") peanuts will be closer to very pale yellowish beige, like unfinished lumber.

Due to the large number of peanuts that may be used in making a reasonable quality of peanut butter, and the inconvenience of shelling those peanuts, one might choose to purchase already shelled, roasted, preferably unsalted peanuts for the purpose.

Edit:  in response to the second question, I defer to the mighty Alton Brown whose recipe indicates to roast peanuts at 350 F for 30-35 minutes.   Since he doesn't give us a test or indicator to know when they are done, and a careful and meticulous recipe writer such as Brown would not omit this if one exists, I infer no good test for doneness of the in-shell peanuts exists.

However, since the individual peanuts within the shells are very uniform in size, the time and temperature guideline is likely to be quite effective.

You should almost certainly be smelling roasty peanut aromas as the peanuts close in to being done, but there is no way to describe that.   Its like knowing when a cake is done by the aroma--its certainly possible, but you have to have experience with the recipe to know.