Okay, I'm Indian, and this is how I do basmati rice, and my can't-cook-won't-cook non-Indian husband can now cook Basmati rice perfectly. The key is to use a pan with a tight fitting lid, and cook it quickly with as little water as possible, so that it effectively steams rather than boils: its the steam pushing through the rice grains which plumps them up as much as possible and results in every grain being separate. IMHO, basmati rice is supposed to stick together as little as possible (so don't try to make sushi with it, or eat it with chopsticks. Please don't ask me how I know this).
Cooking basmati rice: an essay
Measure out your rice into a measuring jug (I use 1 cup for two people), and soak it in plenty of water. I have to admit that I don't bother rinsing it repeatedly, but my mother would. But then I think the rice you buy in the UK is much cleaner and has less bits in that what you'd get India usually. Soak for 30 minutes: this is key, because the rice sucks up some of the water and cooks quicker and in less water. I just put the rice to soak first thing, while I get on with cooking the veggies/daal and everything else, and then do the rice as the last thing. Longer soaking in the fridge (eg. overnight) is also fine IME.
Then, drain the rice in a sieve and leave it there, put your pan on high heat, and put your kettle on the boil. If you want, you can melt some butter/ghee in the pan and sizzle some spices in it (bashed up green cardamoms are lovely and smell nice). But I usually don't bother, and just dump the drained rice from the sieve into the hot pan as the kettle comes to the boil. Measure out the same volume of boiling water into the measuring jug (so for one cup of rice, you want one cup of water) and put over the rice. It won't look like its enough, but trust me, if you've soaked the rice, it is. Add salt to taste, quickly slap on the lid, and once the water is boiling again (a transparent lid is useful to judge this, or just don't put the lid on until you've got the water boiling), which won't be long at all if you've got the pan hot beforehand, turn the heat right down as low as it will go, and set a timer for 10 minutes.
Don't lift the lid at all in the meantime, or do anything except completely ignore the pan for 10 minutes. After 10 minutes, you have my permission to lift the lid, and pinch off some rice to taste it. If its a bit underdone, then put the lid back on and maybe a tablespoon or two more water and give it another 3-5 minutes, but I rarely have to do this (ithough f you're used to more gloopy, overcooked rice, then this may well taste a bit underdone to you: the world won't end of you decide that your personal timing is more like 12 rather than 10 minutes). Take the pan off the heat once the rice is done, and if you stick a clean dishcloth under the lid and then put it back on, the rice will keep hot for a good 30 mins-an hour afterwards.
Apologies for the essay: the doing is much easier than writing the detailed instructions!
If I don't have time to soak the rice for 30 minutes, then I cook it in 1 and a half times its volume of water in exactly the same way, for 15 minutes, but its not quite as 'every grain separate' this way.