Weight training is the mainstay for strength training. Body weight training is generally considered something for beginners who are not ready for heavy weights. Another commonly held concept is that weight training is for muscular strength and body weight is for muscular endurance, or for conditioning for sports such as boxing or martial arts.
The Nature of Resistance
The muscle fiber is the basic component that allows you to produce force. At the level of a single muscle cell, there is no difference between the resistance of gravity or inertia acting on a barbell or gravity's resistance on your own body. To the solitary muscle fiber, resistance is resistance. This holds true of the entire muscle; your pectoral muscles contract against a barbell in a bench press the same way they contract against the floor in a push-up.
The manner in which you make exercises more difficult is the chief difference between training with weights and with your own body weight. You simply add more weights to the bar to increase the difficulty of the bench press. You can increase the repetitions, but after a certain point body weight resistance produces more of an endurance exercise than a muscle-building one. You can increase the range of motion by doing such moves as dive-bomber push-ups, and you can increase the distance traveled, as in clapping and jumping push-ups. You can perform them one-handed, forcing all of the load onto one arm. You can even learn planche push-ups, where your entire bodyweight is supported by your hands and your legs are held horizontally above the ground.
Often, it is simply more convenient to add weight to the bar. The basic movement remains the same. A one-arm push-up requires a slightly different skill than a regular push-up, and makes different demands on the core. On the other hand, if you do not have access to a weight bench, a bar, and a set of plates, most versions of push-ups require little more than floor space. Elastic bands, chains, and weight vests can all be used to supplement your body weight.
The Upper Limits of Strength
One objection to body weight training for strength is that you are ultimately limited by your own weight. You could conceivably continue to infinitely add weight to the bar in the bench press. Even if you do master a planche push-up, however, you are still only lifting your own body. The choice then depends on your goals. If maximal strength in the bench press is your goal, as it would be for a power lifter, then weight training should be your primary method. If you are interested in more general performance or in enhancing your ability to move your body through space, then body weight training is adequate.
Progress with weight training can be much easier to measure. To increase the difficulty of an exercise, you just add weights. If you lift more weight today than you did six months ago, you are stronger. Body weight training is less clear cut. A one-armed push-up is more difficult than one with both hands but the level of difficulty between the two is difficult to quantify. There's no clear multiple of difficulty as there is with weights. Finally, the increments between variations of push-ups are not uniform. You cannot progress from a standard push-up to a planche push-up by just lifting your feet off the ground. There will be a period where no outward progress is made while you are learning the new skill. Conversely, once you have mastered a 220-pound bench press, your next goal will probably be a 225-pound bench -- progress that is much easier to see.