I had this exact same thought yesterday.
I was thinking that I could easily take the stock SMS app and modify it to include what I consider an annoyingly missing feature, marking a message or thread unread. How hard could it be? Just add a new item to a context menu and then some SQL that will mark the message unread.
Well, apparently it is kinda hard.
Here's what I did:
I got the source for the SMS app by typing this:
git clone git://android.git.kernel.org/platform/packages/apps/Mms.git
Then I went to Eclipse, created a new Android project and said "from existing source" and pointed it to this folder I'd just checked out of the repository.
Tons of red Xs in Eclipse. Tons of references it couldn't find. I started digging through the repo to see if I could find the things it wanted and started adding those to the project, but one thing just lead to another missing dependency and after adding half a dozen other apps I just gave up.
Maybe I need the entire framework or something? In that case, I have no idea how to set up the project and how to build just that app based on the stock app.
I know this can be done. People have branched other stock apps (the launcher, the email client, etc.) and released their own enhanced versions. But I just couldn't figure out how to get started -- I couldn't even build an UNMODIFIED version.
If anyone can point me in the right directions, that would be quite helpful.