If you are going to be a successful freelance developer, then you need to be very competent across the entire web stack, from manipulation of data right through to presentation in the browser. You can't simply be a specialist in either front or back end development and rely on another team member to provide specialism in the other discipline, unless you partner up with someone.
Given the breadth of internet enabled devices that websites are expected to work on these days, a solid understanding of HTML/CSS and responsive layouts is a must. I don't believe that it's a designer's job to work on the presentation layer of a website. As soon as you have to crank up an IDE and write any kind of code (and I include HTML and CSS here) then you are firmly within the remit of the developer. Besides, having a flair for front end development is where you have the largest impact on your clients, because that is what they see.
Coupled with strong front end coding skills, which has to also include JavaScript, must come a strong appreciation of website usability and user experience. You often need to guide the client on the best way to present a particular feature, so having good UX skills is key.
You don't have to go much beyond a simple brochure website before a client is requesting features that require some kind of server side language, so competence in your chosen server side discipline is a given. The level of expertise and whether you also need any expertise in database design and manipulation will be determined by the kind of websites that your clients require. If they need something that is very data-centric or bespoke, then it becomes very important. If the website is not dependent on data particularly, or requires a CMS plugging in, then most of that is taken care of for you. The problems with not having expertise in the database aspect come when the inevitable question comes in asking you to customise this little bit over here and store some custom data.
Aside from the overall programming aspects, strong knowledge of whichever server platform you need to deploy your client sites too becomes far more important, whether that is IIS configuration for Windows, or Linux/Unix/Apache, etc. If the site needs to be deployed to the cloud, you need to be prepared to become an expert in whichever cloud hosting platform your client wishes to use. The more of an expert you can become in the way that these platforms work, the features that they provide, and crucially, how much they cost, the greater impact you can have on your clients' decision making in this regard.
You should also be comfortable with a variety of source control systems. I am currently working with clients that ask me to use Git and TFS and have also had to use Subversion and Mercurial, so having a willingness to embrace these technologies helps, both with client relationships and your own technical development.