I'm attempting to capture the back buffer on a texture, and then in an attempt to make sure its working, simply redraw the texture on the screen. I've copied the appropriate sections of code line for line from a tutorial example. The example compiles and works, mine doesn't. I can't for the life of me understand why.

You don't need to allocate an empty buffer to create an empty texture. You can just pass a null pointer to glTexImage to just allocate the texture memory.

You should use glCopyTexSubImage to update an existing texture. glCopyTexImage creates an entirely new texture from scratch which is not what you want to do in this case.

You don't need to enable texturing just to bind and create your texture. The texture enable state is only used for applying texturing when drawing, but not for managing the texture object.

... and a possible cause of your error.

You should clear the depth buffer also. What you draw to the frame buffer is cleared after copying to the texture and before drawing the quad, but the depth buffer is not cleared and what remains in there from rendering the texture-image bay prevent the quad from being drawn.