I had this problem and it took me a couple hours to find the solution.
My specific problem was I knew my webcam worked. I could open another program and could take pictures with my webcam, but Skype wouldn't recognize my webcam. This told me there weren't any hardware problems and that the webcam drivers were probably installed correctly.
You might be able to test your webcam on this site - http://www.testmycam.net/. Note: I don't endorse this site, and do not know how secure it is. Try at your own risk.
Bottom line - webcam worked, skype didnt.
It turned out that there was another program (teamviewer) that was running on my computer and locking up the webcam. Below are the steps I took to find the problem. Chance are if you have another program locking up the webcam these steps will help you find that. These steps were taken on Windows 7 Home, but it should work on Windows Vista, Windows 7, or Windows 8. I did these steps with Skype For Windows desktop. Not with the Windows 8 (Store) app.
Step 1 - Start In Diagnostic Mode
1. Open Start
2. Type msconfig and hit Enter on the keyboard.
3. Click "Diagnostic Startup" - Note: no matter how far you get in these steps, remember that running in "Diagnostic Startup" by itself is not a solution. When running in Diagnostic Startup only the basic services of the computer will run and chance are other things (like netwoking) will not work.
4. Click OK to close MSCONFIG
5. Restart the computer. It should start in Diagnostic Startup
6. When the computer restarts open Skype. Note: This is the full Skype for Desktop. If you have the Windows 8 (Store) app then the following steps probably wont work for you.
7. When Skype opens click on the Tools menu and then click Options.
8. Open the Video Settings.
9. If you webcam workes now (in Diagnostic Startup) then chances are you have another program conflicting with skype and you can follow the remaining steps to find that program. If you webcam still doesn't work then these steps are not for you.
Narrowing Down the Problem
10. Now that we know the webcam works in Diagnostic Startup but not in Normal Startup we have to find out what the diffrence is. Technically it means that a program that only runs in Normal Startup is causesing the problem.
11. The (hopefully) fool-proof way to find this program causing the problem is with the following steps (12-1. This may take some time, but if you don't miss a step these should help you find the problem.
12. Open start. Type msconfig and hit enter on the keyboard.
13. Open the Services tab and also open the Startup tab.
14. Notice all the items NOT checked on these TWO tabs. These are the items that run on a Normal Startup but don't run on a Diagnostic Startup.
15. Check ONE of the items that are not checked..
16. Click OK to close MSCONFIG
17. Restart the computer.
18. When the computer restarts, repeat steps 6-8 listed above. If your webcam DOES NOT WORK in Skype then that means the item you just turned on in step 15 is the program that is causing the problem and you can continue to step 19 below. If you webcam STILL WORKS in Skype that means that you haven't found the problem and should repeat steps 12-16.
Fixing the Problem
19. Once you have identified the program that causes the problem go into the settings on that program and turn off the webcam so that it no longer conflicts with skype. Or just never run that program. If you don't know what to do then seek other help. Remember after turning off the webcam in that program then restart the computer and see if the webcam still works in skype. I turned off the webcam in teamviewer and it fixed skype.
Final Step for Everyone
20. No matter what step you stopped at above, make sure you finish by turning on Normal Startup on MSCONFIG. Open Start. Type msconfig. Hit enter on the keyboard. Click Normal Startup. Click OK. Restart the computer.