I think the short answer to Marco Eichstetter question is NO. You don't need a ZD for roaming to work. The standard takes care of that not the ZD or any other control entity. Maybe in a single channel architecture things are different, but I don't actually know how things go there.
Then there is the consideration of authentication, which is a big factor here.
So when you have 2 APs configured with the same SSID and security parameters the client will decide to which one it is talking at any time. So if it's talking to AP1 and decides AP2 is better it will roam to that one and vice versa.
One thing that vendors do is help the client with the decision. This help is kind of 2 tier:
1. One is standard based with the implementation of 802.11k Radio Resource Measurement of Wireless LANs amendment. This however NEEDS to be supported on APs and client devices (STAs), otherwise it's useless
2. If 11k isn't supported a controller can gather data on an STA and if it thinks it has a better option for it it disassociates it thus forcing an association from an STA and hopefully the STA will connect to the same SSID but one advertised by a "nearer" AP with better signal. It's a hit and miss process.
The other thing is authentication that basically defines the speed of a roam as the STA needs to perform it every time it changes an AP association. These times can vary between 10ms to 300ms, depending on various things. The fastest way to do it now is by employing 11r as was discoussed by Koen and Munish, but again both nodes on a network need to support it.
So in the end, the answer is YES, you need a controller for roaming to work very fast, but you also need clients that support 11k & 11r and 802.1X must be employed.