Software development is a complex process and any software that roll out of the development centers have their own imperfections , most of which are evident in a a real life scenario.
Any software company will try to address the problem by constant research and development process that will make the products mature over time. Still if your software is a popular product like an operating system , each and every day you will find new security vulnerabilities and software bugs .
A patch is an immediate response to a situation. if a software company identifies a specific issue with their product and the situation is pausing a threat to the operation of the product , they will appoint a team of experts who will work on the situation to find out a solution. It is called a Patch or Hot fix. It is not a planned situation and address that specific problem only .
A service Pack is a planned collection of patches and fixes that is targeting a large group of customers than just addressing a specific situation .
Hope you find this Article from Technet on Why Service Packs are Better Than Patches useful for more detailed explanation of the same .
What I loved most in this article from Microsoft is the line Patches are by their very nature unplanned—and we always hope we’ll never need to build one. But software development is an imprecise science, and we know that there will always be bugs—
So that means Microsoft is not saying “It’s Not A Bug, It’s A Feature!”