How do I force the netrender to render everything on GPU? I have a server with an Nvidia GPU card and I want to render my images using Cycles on it. I set up Master and Slave instances on the server and a Client instance on my laptop.

The rendering works, but the server renders the net tasks on CPU, instead of GPU.

If I just run Cycles render locally on the server - GPU works.
If I run a client on the server itself and before switching to the netrender choose "GPU Compute" in the render properties - GPU works.

But I cannot select "GPU Compute" on my laptop, because there is no Nvidia GPU card on it.

How do I force the netrender to use GPU instead? Also, is it possible to use different tile sizes for the local render and the netrender, as switching them from preview to final render is too tedious every time.
Network Render plugin does not have this functionality.
Render the scene remotely via the command line. You can run your own script with it to set proper rendering device or render tile-size.
blender -b file.blend -E CYCLES -t 0 -o //file -P script.py

In the script.py:
import bpy

bpy.context.user_preferences.addons['cycles'].preferences.compute_device_type = 'CUDA'
bpy.context.user_preferences.addons['cycles'].preferences.devices[0].use= True

bpy.context.scene.cycles.device = 'GPU'

bpy.context.scene.render.tile_x = 256
bpy.context.scene.render.tile_y = 256

bpy.ops.render.render(write_still=True)

Blender 2.8+
There's an API change for Blender versions 2.8+, it's only bpy.context.preferences (not user_preferences anymore)