  We use the bulk Hamiltonian for a three-dimensional topological insulator
such as $\rm Bi_2 Se_3$ to study the states which appear on its various
surfaces and along the edge between two surfaces. We use both analytical
methods based on the surface Hamiltonians (which are derived from the bulk
Hamiltonian) and numerical methods based on a lattice discretization of the
bulk Hamiltonian. We find that the application of a potential along an edge can
give rise to states localized at that edge. These states have an unusual
energy-momentum dispersion which can be controlled by applying a potential
along the edge; in particular, the velocity of these states can be tuned to
zero. The scattering across the edge is studied as a function of the edge
potential. We show that a magnetic field in a particular direction can also
give rise to zero energy states on certain edges. We point out possible
experimental ways of looking for the various edge states.
