This paper deals with the leader-following consensus problem for a class of multi-agent systems with nonlinear dynamics and directed communication topology. By introducing a novel distributed observer and employing the backstepping methodology, a distributed adaptive nonlinear control law is constructed using the relative output information between neighbouring agents. For any directed communication graph that contains a spanning tree with the root node being the leader agent, the proposed control law solves the leader-following consensus problem. Compared with the existing results, our proposed adaptive consensus protocol is in a distributed fashion and the nonlinear functions are not required to satisfy any globally Lipschitz growth or Lipschitz-like growth condition. A numerical example is given to illustrate the theoretical results.