Wow some people actually code from scratch here, that's cool!
My process is simpler, due to the lack of time / budget.
1) Find a good theme that fits my client 2) Get all relevant information from client 3) Get client to approve the theme as a preview (this makes sure he likes the layout and colors so I don't need to change too much late) 4) Import demo content in theme 5) Replace demo content with clients information 6) PROFIT