Hai bisogno, a parte html e css, di un linguaggio di scripting server-side come il php (open source) o asp, e di un database (se usi php va bene mySQL).
A seconda delle tue esigenze puoi scegliere un server Linux (normalmente meno caro e adatto per sito in php/mySQL), oppure window(di solito più caro e adatto per asp e vari database, anche se alcuni supportano anche il php). In ogni caso sito e database possono risiedere tranquillamente sullo stesso server.
Se poi il sito è un portale, un forum o un blog ci sogno dei CMS (Content Management Sistem) che permettono di ottenere degli ottimi risultati anche senza toccare direttamente il codice. (Comunque, anche i CMS sono scritti o in php o in altri linguaggi, per cui devi vedere se quello che scegli è supportato dal server su cui vuoi installarlo).