All you need is some kirbys, some hair spray and a hair doughnut (also known as a hair donut or sponge) which looks exactly as it sounds. They tend to come in a light yellow, brown & black, so you can pick one that roughly matches your hair.
Here's how you do it.
Step 1. Put your hair in a ponytail. Bear in mind that where you position this will determine your bun's final position, so aim high if you are wanting a top knot or ballerina-esque style!
Step 2. Thread your ponytail through the middle of the doughnut.
Step 3. Find the centre of your ponytail that is pulled through the doughnut, and sort of smoosh it round to cover the sponge. The photos above will hopefully explain this step a little more clearly! You can easily feel where the doughnut is still poking through, so just use your hands to smooth the hair round evenly until you're happy.
Step 4. With one hand on the centre of your bun (to keep the main shape in place), slowly start to wind the end of your hair in a circular motion round the doughnut.
Step 5. As you are wrapping it round you'll find it naturally tucks in under the bun, so just work your way round keeping the bun tight (and making sure that the bun is still smooth and fully covered!).
Step 6. Use kirby grips to secure the hair wrapped round the bottom of the bun.
Step 7. Work your way round until it feels secure, and you are sure that the bun (or doughnut) ain't going to fall out. At this point you can make the bun as neat or messy as you like. I am forever scruffy, so this is about as neat as I get!
& that's it! Like I said above, I tend to wear my hair a little looser (aka messier) so even with a big fancy bun I tend to leave bits to hang down, but you can easily make the bun tighter and neater.
I'm a happy bun wearer.
Update (May 2012) - I have now also made a video version of this tutorial! You can see it here.