We have two access points at home, and wireless clients can roam freely, keeping their IP address.
Most clients can. Android phones and tables could not. For example, if a Motorola Xoom (Android 3.0) was in range of both APs, then it would switch to the other AP every 3-4 seconds.
The problem was that one AP was set to support only 802.11g, while the other was set to support b/g. Setting both to G-only solved the problem. The Xoom now connects quickly and keeps its connection (so long as it remains still at least).