If you a looking for a tool to re-partition a drive that is already in use (and you don't want to lose the data on the partitions), you could use the proprietary (but very good) PartitionMagic, or the Free tool parted(8).
For a thorough explanation of partitioning, read the Linux Partition HOWTO.
You may also want to read a mini howto on swap someone wrote.
You can set up partitioning as complicated or as simple as you like. The simplest setup is a swap partition (size as twice your RAM up to about 1GB) and the rest of the drive as a single partition mounted on / .
Here are some other recommendations for your drive partitioning scheme:
This is a good layout for a personal workstation as it ensures that all your user data is on another partition safe from OperatingSystem upgades. Servers on the other hand should have a slightly different layout. Generally they also have the following partitions:
Make sure these partitions are large enough, but don't waste too much space on them. Having a separate partition for them is good, because the turnover of files is very fast, which leads to fragmentation. It also helps, because they are problematic since everyone can write there. A separate partition ensures that people cannot overflow important partitions by filling the temp space with crud. It also allows using separate mount(8) options such as noexec and nosuid which prevent people from creating executable files. Be careful.
/var (512MB-1GB)
This is the variable data area is where logs and other files important for system auditing and monitoring are stored. Make sure this partition is large enough so there is always enough space on /var for your log files to continue being written to. Take as many steps as possible to protect these files: areas like /var/spool or /var/imap should have their modes/attributes changed to try and ensure there is no data lost on server failures. Investigate the sync mount option and the chattr(1) command.
To add additional protection to your applications from system crackers you can mount your /usr partition readonly.