Boolean control networks (BCNs) are recently attracting considerable interest as computational models for genetic and cellular networks. Addressing control-theoretic problems in BCNs may lead to a better understanding of the intrinsic control in biological systems, as well as to developing suitable protocols for manipulating biological systems using exogenous inputs. We introduce two definitions for controllability of a BCN, and show that a necessary and sufficient condition for each form of controllability is that a certain nonnegative matrix is irreducible or primitive, respectively. Our analysis is based on a result that may be of independent interest, namely, a simple algebraic formula for the number of different control sequences that steer a BCN between given initial and final states in a given number of time steps, while avoiding a set of forbidden states.