It occurs both places, but the actual halftone or dither pattern is often a function of the driver.
Printers be it inkjet, laser, or high-end image setters can only place a single element of ink or no ink on their substrates. These elements called cells and combinations of these cells are arranged to produce differing tones using several methods. Amplitude Modulated or the traditional halftones is one such method.
Now non-postscript inkjets and many laser printer don?t allow you to choose the dither method, so you are stuck with the default dithering method, which is most likely some form of Frequency Modulated dither. Where dots are varied in frequency instead of size, unlike a traditional halftone were the size of the dot is varied. A FM dither would not be suitable for screen-printing as the dots must be smaller to produce smooth tonal gradients.
Now if you don?t have control over the printers dither or halftone patter. You could fake it in Photoshop.
Create your artwork in Photoshop using spot channels or even CYMK mode if you?re dealing with photographs. Save it, then go to the channel menu and select split channels, this should split you image into separate images one for each channel in the image. Now you can convert each channel into a bitmap, use halftone as a dither at the desired settings. Then simply print each of the generated halftone images.
Keep in mind each color needs to be at a different angle or the dots will overlap. For the best results use 30 degrees increments, K45, M75, Y90, C105, this will also help prevent a moiré pattern from occurring. When working with 2 spot colors, I would suggest using angles far apart. Typically you start with 75 and 105 degrees. Leaving 45 degrees for any black printer. If you need to use all 4 screen angles reserve 90 degrees for the lightest color as a slight moiré pattern occurs and it?s best if it is in the lightest ink where it?s not noticeable.
As for the output resolution, use around 800-1200ppi; I find it to be adequate for most output devices. But it really depends on your equipment so some testing maybe necessary.