When I run Windows, consolas is my monospace font of choice. It is great for programming, and really helps to distinguish characters that look all too much alike.

On Ubuntu there is a similar font available for free called inconsolata. The differences are relatively minor (a side-by-side comparison can be found here)

Installation of inconsolata on Ubuntu 12.04

sudo apt-get install ttf-inconsolata

Regenerate the fonts cache by issuing the following command:

sudo fc-cache -fv

Setting up Ubuntu

In order to get Ubuntu to use this font, the easiest way is with MyUnity (for more information on MyUnity see the authors website http://www.uielinux.org/myunity/). On Ubuntu 12.04 installation is easy

sudo apt-get install myunity

Ubuntu 11.10 and below require a PPA though

sudo add-apt-repository ppa:myunity/ppa
sudo apt-get update
sudo apt-get install myunity

Visit MyUnity through the icon on the settings application in Ubuntu, and visit the font tab.

Setting up Chrome

Visit chrome://settings/fonts and change the monospace font there

Setting up Firefox

Visit Edit -> Preferences -> Content -> Fonts & colors -> Advanced

Setting up Vim

" font settings
if has("gui_running")
  if has("gui_gtk2")
    set guifont=Inconsolata\ 12
  elseif has("gui_win32")
    set guifont=Consolas:h11:cANSI

If anyone has any other favourite fonts for programming on Ubuntu, let me know in the comments.