I want to introduce my 8 year old son to Lego Mindstorms.
Where should I start? Is there a starter kit which is the best starting point?
The most current Mindstorms set would be the NXT 2.0.
The set is advertised for children aged 10+ (previously 16+). If you or your child is under 10 but has a talent for building with LEGO and a basic understanding of computers or engineering the whole process should be fairly easy to get to grips with.
The set itself is quite an investment (RRP £235/$350) yet it provides the most complete Mindstorms package. Half of the time spent playing with the set will probably involve programming via the NXT-G software which comes with the set.
NXT-G is an intuitive, icon-based drag-and-drop programming language designed for an easy introduction to programming for new users and experienced users. By choosing program blocks that work with the motors and make the sensors react to inputs, you simply build up your program block by block, and you can create programs that range from simple to complex. (Source)
The best thing you can do to get experience with Mindstorms is to try to build some robots with the kit. You should get the normal NXT kit, as this includes the software, the electronics and some sample Mindstorms models.
Anyway, there are two aspects to Mindstorms, building and programming.
Building: If you have experience with Lego Technic, building should be familiar to you. However as this is often not the case with young people, you will want to get some experience building with Lego Technics by using building instructions. There are the sample models included in the kit, but you might also want to buy some Technic sets to get some further experience (and more pieces to build with).
Programming: The programming can be a bit more tricky. First you should make the example programs included with the software. If I remember correctly, it will let you make a program step by step. The important part is to pay attention to what you are doing and why you are doing it during this process! Do not just make the program and run it, use some time to understand how the program is working. Try to make modifications to it and see what happens! Give yourself challenges and try to solve them, "can I make it do this instead?".
Once you have made the models in the kits and experimented a bit with them, you can find even more Mindstorms models online. One example is nxtprograms.com. There are also books which you can read, for example The LEGO®MINDSTORMS® NXT 2.0 Discovery Book. The important part with the programming, especially when downloading programs from the web is to really take some time with trying to understand them. I will point it out again, do not just run them, as this will learn you nothing!
The best way of learning however is to experiment, try to build or program something either as a modification of another model or something completely from scratch. The reason Mindstorms is fun is because you can create something yourself with it, so the steps above should be treated as steps in order to reach this stage where you don't need instructions. So it is important to mix these two approaches in the beginning, do something from instructions and try doing something yourself.
The RCX 2.0 had a section with "advanced" models. The primary difference between the simple and advanced models were that the simple models had building instructions where the advanced models only had the key steps . So you had to fill in the other steps yourself, which is a great way to learn how to build, since you are forced to think about what you are doing. Try to take some of the robots from nxtprograms.com, but remove all but the most important steps and give those to your son.
I can only answer based on my past experiences with RCX 2.0.
Mindstorms comes as one great box with everything included. Back with RCX it was very simple to get started. You simply had to install the software that came in the box. The whole thing was designed to be used by kids. It was very intuitive with a nice tutorial going over every programming concepts. This was all done while programming the real hardware so it was encouraging to see the results in real time.
All the coding was done using visual elements (like building blocks) that were linked together to form the full program. Again it was very intuitive for young kids.
My son and I had a great time with RCX 2.0 and I would recommend it any time. I hope NXT is the same or even better.
As others said, the Mindstorms retail kit is the obvious starting point (begin the only kit readily available).
There is an education kit which contains mostly the same things as the retail kit, with the notable exception of the software (which is sold separately). It's certainly not really suitable for a standalone usage, and possibly difficult to acquire depending on where you live.
However, LEGO education could be a interesting route as well that your kid's school may be interested to investigate. This could mean that the kids get an introduction to robotics as a class and you'd see if your son gets a taste for it before needing to buy a kit yourself. The target age of the education kit is 8+, by the way, so don't worry too much about the 10+ range of the retail kit.
From LEGO education, there's also the WeDo kit. While not part of the Mindstorms range (it doesn't use the same hardware at all), it can also be an interesting introduction to robotics, aimed at slightly younger children. For a school, it's also a less heavy investment than Mindstorms, which can be easier to justify.