You might aswell realize it right away, being a freelancer or home business owner is a 24/7 job and requires much more than technical skills. With that being said, I agree with samanime that you will need to know some server side scriptlanguages, and most of all you should get some experience creating sites on different frameworks (they don't neccessarily need to be real working sites, or commercial projects) so you get a brief overview (very brief) of what the different languages/frameworks are used for.
About graphic design, surely there are people that are great at both developing and designing, but only a handful I think
Personally I focus on development, but I have aquired some skills in Photoshop / Illustrator and followed some courses in Media Design and Webdesign, but creating a full unique design worthy of my clients is not something I claim to be able to deliver - I guess it also comes down to what you enjoy doing! For this, it's perfect to have a network of designers that you can outsource the more advanced design tasks to (not just anyone, people that you trust and know can deliver).
My advice is:
Finally, build your network! As a freelancer theres nothing better than knowing someone that has worked with things that you are not personally too sure of. If the project is big enough, you can then outsource parts of it to these reliable peers - or of course ask them for help. It of course goes both ways