Чтобы отдавать клиенту контент какой-то. Если у вас нет веб-сервера - то вы не можете создать веб-приложение и отвечать на запросы клиента по HTTP-протоколу.
Пишут свои потому, что не всегда готовое подходит. По разным самым причинам. Проекты бывают специфичные, под них затачиваются собственные сервера.