The resource pack system is an API replacement for texture packs and a way for players to further customize their Minecraft experience.
Resource packs allow players to customize music, sounds, language files, end credits and fonts without any code modification. Ultimately, every mod/plugin will be its own resource pack, with vanilla incorporated as a resource pack by itself; users will be able to apply multiple resource packs at once.
All texture pack functionality has been incorporated into resource packs. All prior texture packs must first be converted to be usable by the game. A tool called Minecraft Texture Ender is available from Mojang to manually convert "unstitched" texture packs to resource packs. "Stitched" packs must first be unstitched with Unstitcher. Converted packs function as texture packs when loaded in the game.
Below you can find a list of popular resource packs for various versions of the game.
Here you can find a list of Popular Resource Packs - note that you will need to check which versions of Minecraft are compatible with each one.