Exuberant ctags is the simplest way to achieve this.
Under GNU/Linux (e.g. Ubuntu or Debian) you should be able to just do
sudo apt-get install exuberant-ctags
(For OSX "$ brew install ctags" should suffice; for Windows you might want to visit http://ctags.sourceforge.net/ and download the standalone executable)
Then navigate to your project's root folder and run
ctags -R --exclude=.git .
This will scan your entire project and create a ./tags file which vim will automatically use to provide you with the ability to jump to functions at the press of a key. Namely:
Ctrl + ]
with your cursor placed on the function you want to see the implementation for.
There are other combinations and many command mode functions that let you navigate through your code by ctags as well (e.g. Ctrl+t to jump to older tag stack entry). See :help 29.1
for an overview.
Note that you have to re-run ctags for each significant change in the code and let it re-index your project. You can either do that manually, or teach vim to do it on hotkey or on write.
Hint: if you make extensive use of ctags, maybe the vim-taglist (http://vim-taglist.sourceforge.net) plugin is worth a look as well. It gives you an IDE-style outline with a list of all functions for that class/file.