The first bit of advice: partitioning usually wipes the card, so back everything up to a computer first. Make sure you can see system/hidden files and copy those too - ".android_secure" in particular (that's where apps moved to sd are).
Having done that, we have generally recommended GParted, but to be honest I think that 4Ext Touch recovery can probably do this fine - it uses a different partitioning utility to older recoveries, and includes the ability to check for partition alignment (which is the thing that most recoveries get wrong when partitioning). So that might be the simpler way of doing it.
So, back up the card, boot into recovery, and you'll find the option to partition the card in the "tools" menu. I'd add a single ext4 partition, no larger than 1GB (for a2sd that's as big as you'll ever need), leave the rest as fat32. You can then copy the card contents back to the fat32 partition afterwards.
There is an option to partition and preserve your data ("save my fat32"), which may be worth a try, but if there are any problems you'll need to use the other option, which is why it's important to back up anyway.