Correct, this is done via an internal DNS server. You can use pretty much any DNS server software you want. If you have a Windows Active Directory network then you already have a DNS server.
Your DNS server does not have to be publically accessible, but it does need to be the DNS server for all the machines in your network. If you don't have a DNS server at the moment, this can cause many other issues. Any requests that can't be resolved are then forwarded to another DNS server (typically your ISP's).
Anyway, back to what I was saying about your Active Directory setup. The DNS server is usually the domain controller, so once you've found it, fire up the DNS control panel (Start > Control Panel > Administative Tools > DNS). Under Forward Lookup Zones, you will need to create either an A or a CNAME record for your subdomain/internal URL.
E.g. Let's say you have an internal server, WEB1 and you want it to respond on http://intranet/ then you would create a CNAME record for intranet and point it to WEB1.