Partition first. Remember that it's likely to wipe the card, so back everything up before you start partitioning.
The best partitioning tool is GParted. There's a video guide to using via a virtual machine this linked in the All Things Root Guide sticky post in this forum. The root memory FAQ, linked in the same sticky post, will also have some good advice on this.
4Ext can actually partition the card itself, and probably does a better job of it than most recoveries (e.g. it can test for and correct partition alignment, which most recoveries get wrong if you use them to partition).
Avoid Minitool Partition Wizard - you will find guides that recommend it on the web, and all I can say is that the charitable assumption is that they know no better. We've had a lot of people with problems after using MiniTool, and which have been fixed by repartitioning with a better tool, so I think it better not to use it in the first place.
Remember that CM7 doesn't have the script that will use the partition built in. You need to either add this yourself (there should be a link in the CM7 thread at XDA), or you can use an app called Simple2Ext which you install from the Play Store (only works with CM7).