If there's one thing people enjoy it's using lots of LEDs for data displays, games and other general blinky fun. However the more LEDs the use the more I/O pins you'll need - unless you use a method called "Charlieplexing". A term coined Charlie Allen at Maxim Integrated (where the MAX7219 comes from), it uses the concept that current only flows in one direction to illuminate an LED, and thus with some directional current control you can control two or more LEDS with relatively few I/O pins - for example, six LEDs only require three pins:
This has been demonstrated very well by "Andy" who explains the method of connecting one or more LEDs for this process. Then with some simple I/O functions you're in business - his examples work around the ATmega328 that's the heart of Arduino boards and also available separately. To get started, visit his blog. And for more, we're on twitter and Google+, so follow us for news and product updates as well.
If you want to control 512 LEDs at once - have you considered using a Freetronics Dot Matrix Display? Available in a variety of colours, they consist of a 32 by 16 matrix of LEDs. Included with the DMD is a cable to directly connect with an Arduino-compatible board, and at low brightness (which is still fine to read indoors) you can power one DMD from the Arduino. However by connecting 5V at 2.5A for each board they operate at a brightness which is visible anywhere. Furthermore you can daisy-chain (with the included cable) six or more displays for great effects. So for more information head over to the DMD pages today.