I run an Ubuntu 8.04 on a Slicehost virtual server with some lightweight server apps - apache22, svnserve, mysql, and proftpd. The only serious service limitation is RAM - 256MB is what I'm paying for.
I noticed that if I let the system run for a few days/weeks, the amount of free RAM slowly declines, and paging file is being used soon after. For example, upon rebooting I may have 60% of RAM free, next day it may be at 55%, etc.
             total       used       free     shared    buffers     cached
Mem:           256        114        141          0          3         50
-/+ buffers/cache:         61        194
Swap:          511          0        511
How would I prevent the amount of available memory to decline?
Edit: Here's my ps -aux listing the top memory consumers. I left out all the system processes. I can see that apache and mysql top the memory usage. 
    USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
    root      1369  0.0  0.3  16844   952 ?        S<s  00:10   0:00 /sbin/udevd --daemon
    syslog    2110  0.0  0.2  12288   748 ?        Ss   00:10   0:00 /sbin/syslogd -u syslog
    root      2131  0.0  0.2   8128   588 ?        S    00:10   0:00 /bin/dd bs 1 if /proc/kmsg of /var/run/klogd/kmsg
    klog      2133  0.0  0.4   4516  1304 ?        Ss   00:10   0:00 /sbin/klogd -P /var/run/klogd/kmsg
    root      2154  0.0  0.4  50904  1152 ?        Ss   00:10   0:00 /usr/sbin/sshd
    root      2211  0.0  0.2   3932   592 ?        S    00:10   0:00 /bin/sh /usr/bin/mysqld_safe
    mysql     2253  0.0  8.8 161940 23252 ?        Sl   00:10   0:00 /usr/sbin/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --pid-file=/var/run/mys
    root      2254  0.0  0.2   3836   604 ?        S    00:10   0:00 logger -p daemon.err -t mysqld_safe -i -t mysqld
    proftpd   2340  0.0  0.5  63000  1504 ?        Ss   00:10   0:00 proftpd: (accepting connections)
    root      2356  0.0  0.3  18608   964 ?        Ss   00:10   0:00 /usr/sbin/cron
    root      2384  0.0  0.3  83360   892 ?        Ss   00:10   0:00 svnserve -d -r /etc/svn/svn-rep-01
    root      2387  0.0  3.5 194628  9220 ?        Ss   00:10   0:00 /usr/sbin/apache2 -k start
    root      2409  0.0  0.2   3852   576 tty1     Ss+  00:10   0:00 /sbin/getty 38400 tty1
    root      2410  0.0  0.5  15252  1444 ?        Sl   00:10   0:00 /usr/lib/ruby/gems/1.8/gems/passenger-2.0.2/ext/apache2/ApplicationPoolServerExecutable 0 /us
    www-data  2411  0.0  3.4 195880  9100 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2412  0.0  7.3 205532 19400 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2413  0.0  3.3 195620  8824 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2414  0.0  3.4 195880  9080 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    www-data  2415  0.0  3.4 195888  9056 ?        S    00:10   0:00 /usr/sbin/apache2 -k start
    root      2416  0.0  2.4  43448  6512 ?        Sl   00:10   0:00 Passenger spawn server
    www-data  2437  0.0  7.7 208116 20248 ?        S    00:48   0:00 /usr/sbin/apache2 -k start
    www-data  2519  0.0  3.3 195644  8820 ?        S    02:12   0:00 /usr/sbin/apache2 -k start
    root      3026  0.0  1.1  67960  2892 ?        Ss   20:53   0:00 sshd: dv [priv]
    dv        3028  0.0  0.6  67960  1700 ?        S    20:53   0:00 sshd: dv@pts/0
    dv        3029  0.1  0.8  19392  2304 pts/0    Ss   20:53   0:00 -bash
    dv        3041  0.0  0.4  15056  1092 pts/0    R+   20:54   0:00 ps -aux
Overall, I'd like to thank everyone for their thoughtful answers and it was really hard to choose the best because each has some useful information in it.
I'll look into moving to lighthttpd or nginx, or at least reduce apache's MaxClients parameter.