Are you using SQL 2005? If so, I might be able to offer a bit of help.
The memory management design of the SQLSERVR.EXE process is intended to allow it to grow to the system-defined maximum size, and not release memory until the operating system instructs it to do so. This is intended to prevent the process from being paged out.
On a stock 32-bit version of Windows, the standard maximum amount of memory available to a process is 2GB, and SQLServer reserves part of that space (around 256MB, maybe a bit more by default depending upon config) for things like external DLL's, the CLR, and other items where allocations are made outside of what is termed the standard buffer pool. That's why the process eventuallly maxes out at 1.5GB.
As a result, unless system configurations dictate otherwise, it wouldn't be unusual or indicative of a problem to see a long-running SQLSERVR.EXE process top out at 1.5GB, just as you have seen.
You can limit the amount of memory used by sqlservr via the "max server memory" configuration option, or via the GUI in the SQL Management Studio in the Server Properties dialog. The proper amount of memory to allocate is dependent on a number of factors; server load, size of databases, etc. there's no one best number.
Rebooting solves the issue because it restarts the SQLSERVR.EXE process with its default minimum allocation, which then starts growing again over time.
Hope that helps some.