Q1: What's the difference between BSSID and ESSID and when I need a ESSID?
A1: BSSID is 48 bit number used to identify the BSS short area, where all hosts talk each other (eventually with an Access Point) ESSID is a variable length string that can let communicate different BSS are to extend it to a Extended Service Set (ESS). There is one Access Point for each BSS and all they talk together only if you belong to the same ESSID. Really you need ESSID if you have a large network with at least 2 Access Points.
Q2: What Access Point I have to buy?
A2: The less expansive you find: what is important is that the Access Point and the cards you are using use the same Physical Layer Specific: all FHSS compatible or all DSSS compatible. Attention to Proxim RangeLan2 cards that cannot talk with other standard FHSS because they use the proprietary protocol OpenAir.
Q3: What do I use the channel setting for?
A3: When you have more network with different BSS (and with different vendors) you could have interference problem: changing channel on Access Points or in Adhoc mode hosts could help you avoiding this kind of problems.
Q4: Why I cannot set channel on Infrastructure hosts?
A4: Because the channel is decided by the Access Point.