Use WinISD or that signal generator that gerG pointed out.
I would start by turning the sub's crossover down as far as it can go. With that setting, use the signal generator to get a feel for your sub's response curve, finding the peak, seeing how flat it runs, etc. Then, match the peak/flat area to your mains, using your signal generator to generate tones for you to test. The biggest advice I can give in this area is that by ear, you hear a lot less bass than you do higher frequencies, so in my experience, the bass should be softer than the higher frequencies or you end up with bloated bass.
Find the frequency where your main speakers start to roll off significantly. Run the crossover control up and listen for when your sub starts to fill in the gap. If it sounds like there's a region in the bass where no matter how much you turn up the crossover, and even to a limited extent turn up the volume on the sub, it just doesn't get much louder and it sounds like there are some weird cancellation effects, adjust the phase control. I would match it first by getting the crossover up roughly to where it starts filling in the bass left out by your mains. Then match the phase. It should be loudest when the sub is in phase. Then carefully match the volume of the sub to your mains adjusting the crossover as needed. You may get different results with the new phase setting.
0. turn your sub's crossover all the way down
1. locate where your mains fall off
2. bump your subwoofer's crossover freq up to roughly where it matches
3. match phase by listening to various frequencies and seeing if there are nulls being created by phase mismatch
4. fine tune your crossover frequency and overall volume of the sub
I'm probably forgetting a ton of stuff