dmckee's answerdmckee's answer is a great not-too-technical description of buoyancy. Read that first. But in case you're interested, I thought I would go into some more detail.
The buoyant force on a submerged object (e.g. a balloon submerged in air) is equal to the weight of the displaced fluid,
$$F_b = \rho_f g V$$
as dmckee said. The physical origin of this force is actually the pressure difference between the top and bottom surfaces of the floating object. Pressure in a fluid at a certain height is related to the depth of the fluid above that height by
$$P(z_2) - P(z_1) = \rho_f g (z_2 - z_1)$$
that is, density of fluid times gravitational acceleration times height difference. If you have a rectangular box whose top and bottom surfaces are flat, then it's pretty easy to calculate the buoyant force as the pressure differential times the area of those surfaces,
$$F_b = (\Delta P)(A) = \rho_f g \Delta z A = \rho_f g V$$
For an irregular shape, you'll have to do an integral of some sort. For example, I once wrote a blog post which discusses, in part, deriving the buoyant force (and weight) from the minimization of potential energy, and that method can be easier to apply to irregular objects. (There are also a couple of interesting applications, even if you don't care about the math.)
You can also take into account variations in density (or gravitational acceleration) over the size of the balloon by doing an integral. But, according to the US standard atmosphere model, the density of the atmosphere takes about $20\ \mathrm{km}$ to drop off to near zero, which corresponds to a fraction of a percent change over the height of a typical hot air balloon (a few tens of meters). That fraction of a percent is generally negligible, so you're pretty safe just using a single value for the density.
However, you can't neglect differences in density between vastly different altitudes. Remember that the buoyant force on the balloon is equal to the weight of the amount of fluid displaced. As you go higher, the density of the air drops, which means the balloon displaces a lower mass of air. Therefore, as the balloon rises, the buoyant force drops. Eventually it reaches a height at which the buoyant force exactly balances out the weight of the balloon (and basket), and the balloon levitates at that level. As has been said in the comments, for a controlled balloon, the operator can adjust the level by either heating the gas inside the balloon (thus making it expand and displace more air) or by letting some gas out (thus making the balloon contract and displace less air).