To answer your actual question, Nixphoe has the correct answer with the offline defrag. As a warning though, all mailboxes in the database you are defragging will be offline for the duration of the defrag (which can be an obscene of hours).
If however you're seriously considering doing a major operation like an offline defrag to reclaim a lousy 5GB of disk space, you need to upgrade your storage as a matter of great urgency (bad things happen to Exchange when the disks fill up).
If you're really intent on doing this, a better and easier alternative is to create a new mailbox database and move your mailboxes from the old database to this new one. This also has the very attractive benefit of only taking the mailboxes offline that are currently in transit and means considerably less downtime for your users than an offline defrag. The caveat of this method though is that you need enough storage space to hold the existing database as well as the new one while you move mailboxes between the two.
The reason your .edb file (the actual Exchange database) didn't get any smaller is a performance feature of Exchange and unless you have a really good reason to, I'd never recommend you do an offline defrag on a production database. With respect, you asking this question means you don't understand why the ESE database engine works this way, and as such probably don't have a good reason to do an offline defrag.