You are right in thinking that you can't change your son's name by deed poll without his father's consent, or without a court order.
To obtain an order, you make an application under the Children Act for a Specific Issue Order. You can get the form from your local county court.
Courts these days are, however, reluctant to make these orders as they consider it important that the child doesn't lose touch with the paternal part of his heritage. To succeed, you'd have to show that it would be in your son's best interest to have the same surname as you.
In cases where a child of unmarried parents' birth is registered prior to November 2003, the father does not automatically have parental rights and responsibilities.
Because your son was born in 2004, you unfortunately don't have that "get out clause".
You can certainly ask the school to register your son in your surname, but problems often arise when, eg, exam certificates are issued in the wrong name, and also of course if he gets a passport, it will be in his dad's surname which can cause problems.
You should initially ask your ex whether he would agree. If he does, then you can do a deed poll. The solicitor drafting the deed will ask for written confirmation from your ex that he consents.
Hope this helps (I'm a lawyer specialising in family law, btw).