I have a 330xi, so here's my take..
20k range your probably looking at a 00-02 with at least 40-60k mi. A base BMW does not come with leather - but leatherette.
Available packages for those yrs are
Premium - leather, sunroof, cd, etc
Sport - bigger rims, sport steering wheel, fogs, bigger wheels, sport seats etc.
Cold Weather - headlight washers, ski pass through, fold down seats, etc.
Other add on's include Nav, premium HK sound system, cd changer, parking distance control, HID's
Things to keep a eye out for are the 99-00 with subframe issues. Try to stay away from 323's or 325's they're rather underpowered. Some are built in South Africa, so make sure you check out where they are assembled. Also, I recommend going to the local dealership, you might pay a little more, but a CPO warranty (5yr, 100k) can't be beat.
Pros: fun to drive, fast, handles well
Cons: expensive to maintain, not too great on gas (18-22mpg with my car), depending on where you live - this car is RWD (unless you get a Xi), so with any RWD car, its not that great in the snow.
If your are willing to spend a little more, 03+ has a new package called ZHP - its gives you M bumpers, better suspension, M steering wheel and a little more power.