Ages ago, I had a project that used a webcam to track a laser pointer on a wall and control the mouse cursor. When using a strong laser pointer, this even worked together with a projector. Since the project is very old and will not compile (c++) any more, I revived the project by doing a little bit of python coding. There is no calibration yet and the camera used was way to bad, but somehow I got it working, under certain circumstances (the picture has to be white enough for the camera to automatically turn the brightness down far enough etc).
Here are some proof of concept videos: