Adding a second 512MB stick should work just fine. Although using a single 1024MB stick would save you a memory slot, I'd advice against it, as many mainboards don't really know well how to handle these big sticks and they are quite expensive.
If you happen to have a mainboard that supports dual channel memory (Nforce2 chipset for instance), you could make a dual-channel setup when buying 2 sticks of the same size. This improves the overall system performance.
What kind of memory you need? Well it depends on what your mainboard can handle, and what the FSB of your CPU is. As you have an Athlon 2400XP, PC2100 memory should be fine (as a 1:1 memory<->CPU FSB gives the best performance). You could however go for PC2700, 3500 and even faster as well. Although your mainboard might not support it, the memory will run fine at lower clockspeeds. Buying faster memory might be a good idea for future use (new system with old memory or so).
Dane-elec is a nice brand. Other good brands ar Kingston, Twinmos, Mushkin, Geil, Corsair, Micron, Samsung, Apacer, Infineon and prolly some more I forgot about...
One thing you might want to look out for, is the timing of your memory. This CAN influence the overall performance of your system quite heavily... lower timings is always better. Just notice that the memory will run on the timings of the slowest memory. So if your current memory is running on CL3 for instance, so will your new memory, even it it were CL0 (doesn't exsist;))..
Good luck and ask for more info, if wanted/needed!