The simulation of internal waves using a lattice Boltzmann model is considered. Two different situations are considered: a sharp interface between two fluids of different densities; and a continuous density change over a finite depth. Both situations are examined for pure gravity waves and for gravity-capillary driven waves. When a sharp interface is applied the wave motion is that of interfacial waves. When a wide interface is applied interfacial waves are simulated when surface tension effects are significant. When the surface tension effects are small enough that they can be neglected, internal waves on a continuously varying density distribution are modelled.