You can also check the voltage and current in System Info (it gets the info from the same place, but it's slightly more human readable than those bare numbers in microVolt and microAmpere.
Your battery is "really" full when the voltage is around 4.2V, and it is "really" empty when the voltage is around 3V. During discharge, the voltage gradually drops. Voltage alone is not enough to reliably tell the exact charge percentage though.
Differences between what System Info reports and what anything else (like the battery indicator of xfce) reports are explained as follows:
- System Info gives two percentages: % of design charge and % of "full" charge, where "full" is some estimate of your battery capacity. The design charge is 4240mAh for everyone, the full charge will depend on your battery wear level, e.g. mine is 3874mAh at the moment (although that number is probably not a good estimate). All other indicators give only the percentage of "full". The percentage of design charge will of course always be lower.
- System Info gets the current battery charge to initialize its values, and it keeps looking at that reported value, but it also meanwhile monitors the power consumption based on the measured voltage and current. As long as the reported charge is close to the computed charge, it will "believe" the reported charge, but when the computed charge becomes too different from the reported charge, it will give you the computed charge. The reported charge is always clipped between two values, e.g. on my unit it is always between 38mAh and 3915mAh, so it can happen that the percentage you see is 100% and the reported charge does not go up, but the unit is still charging; in that case the computed charge of System Info will probably be closer to the truth. It can also happen that the reported charge is at the minimum (0% or 1%) and stops going down, but the unit is still discharging. In that case the computed charge of System Info will keep going down, and can possibly go negative too, which is of course not what the actual charge is, but it means that the initial reported charge was not correct because of miscalibration.