> #include "whatever.h"
Use this when you're including a file which is closely related (in the same directory) as the source file. foo.cpp would typically #include "foo.h".
> #include <whatever.h>
There are 2 cases
1. You've written a library you want to make use of in multiple projects
2. You've downloaded a library you want to make use of in your projects.
The <> tells the preprocessor to search all the standard include directories for the file. In most cases, extra files are not in the standard places, so you have to tell it where else to look.
In gcc, you would use
People using IDE's should look at the project settings, and edit the "additional include directories" field.
gcc -I/path/to/otherlib -I/path/to/mylib foo.cpp
> #include <whatever>
Is the same as the previous example when it comes to locating the file.
It may be that files without a .h imply that namespaces are being used, but that's only a guess on my part.
Certainly any well-written C++ library would use namespaces of some sort or another.