Dns is useful to propagate names over the network. So, yes, if you want to have app1.myserver transformed into <192.168.1.1>, you need a DNS server.
But, if you are the only person using this (or for testing purpose), you can simply modify the hosts files on your local computer and add an entry for
Now, if you have 3 applications: app1.myserver, app2.myserver and app3.myserver. When you connect to one of them using http://app1.myserver, you browser sends an HTTP request that contains a "Host" Header.
This Host header has the value "Host: app1.myserver".
Apache receives your HTTP request, looks at the Host header, and direct the request to the good application. This is called Virtual Hosting,and this is what you do when you create Apache's virtual hosts.
So, you don't need mod_rewrite, a basic Apache2 server, and a local Host file (or a DNS) and you're all set.