One thing that bugged me for a long time using Aperture was that my library quickly got enormous. There originally wasn’t any way to do this, but Aperture 1.5 gave us the "Relocate Masters" function.
The problem is, you have to select which photos to relocate, and if you have thousands of photos, it’s hard to decide which to keep local, and which to put on an external drive. So I came up with this technique. You don’t necessarily have to do it exactly like this, and you may use different criteria to pick your photos, but this was what worked for me.
First of all, you’ll need an external hard drive. Storage is ridiculously cheap now. I bought a LaCie 500 GB drive for $150. Open up Aperture and create a new smart album. We’re going to tell Aperture what photos we want to relocate to the external drive. Whenever I take a batch of photos, I rate the keepers between 3 and 5 stars. That way it’s easy to create smart albums for each event. So I wanted to keep all rated files local and get rid of all the pictures that I didn’t necessarily want to delete, but wanted to store externally. I used these options:

- Set it to match "All" rules
- Rating is "Unrated"
- Date is not in the last 30 days (so I still have time to post-process things I’ve just shot"
- File status is online (so it’s not picking anything I’ve already relocated)
- iPhoto roll is empty (I just did this because I never went back and rated my old iPhoto library)
Now, before you plug in the external hard drive hit Command-A, or go to the Edit menu and hit "Select all"

Since we haven’t plugged in the external hard drive yet, any files we’ve already relocated there are still "offline" and won’t show up in the Smart Album.
Now just hit File > Relocate Masters, and pick a place to put them. I store them in /Pictures on the drive, since there in my Pictures folder locally.

It’ll chug for a while, depending how many photos you’re moving. Once it’s done, quit aperture, disconnect the drive, and enjoy tons more free space!