FBOs aren't useful to simply apply static textures to a model. For static textures, you would initialize them using glTexImage2D
during startup and then use the textures while rendering your model. This is presumably what you're doing now.
Framebuffer objects are used when you want to have a texture that is not just a static image loaded from a file, but something generated dynamically by the GPU. They allow you to capture an image rendered by the GPU, and then later use that image as a texture for further rendering. This functionality is also called "render-to-texture" and is commonly used for advanced rendering techniques.
One example of using FBOs would be for rendering the reflection in a body of water such as a lake or ocean. You'd create a texture object to hold the reflected image and attach it to an FBO; then each frame, before rendering the main scene, you'd bind the FBO and render the reflection; all the rendering output will go to the texture instead of the screen. Then you can unbind the FBO and render the scene as usual, using the texture in the water shader to produce the reflection. This way the reflection will update dynamically as the camera and other objects move around.
Other examples where you'd use FBOs include shadow mapping, post-processing, deferred shading, and many other advanced rendering techniques. You can read all about these (and the details of the reflection technique I just described) on the Web. FBOs are a key part of advanced OpenGL usage, so they're well worth spending some time with - but probably not until you've gotten a grasp on more basic OpenGL usage first.